{"version":3,"sources":["../ui/src/components/player-components/speed/speed.tsx","../ui/src/components/player-components/speed/speedIcon.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\r\nimport Popover from \"../popover/popover\";\r\nimport SpeedIcon from \"./speedIcon\";\r\nimport { useAppDispatch, useAppSelector } from \"redux-share/hooks\";\r\nimport useOnClickOutside from \"helpers/hooks/useOnClickOutside\";\r\nimport { setSpeedPopover } from \"redux-share/slices/popoversSlice\";\r\nimport { conditions, handlePopoverSizeInMiniPlayer, videoTag } from \"helpers\";\r\nimport { ConditionName } from \"interfaces\";\r\nimport { setUserSettings } from \"redux-share/slices/userSlice\";\r\nimport { createSettings } from \"redux-share/actions/user.actions\";\r\nimport { sendFluentLog, speedChangeLog } from \"../../../../../logs\";\r\nimport { shallowEqual } from 'react-redux';\r\nimport dynamic from \"next/dynamic\";\r\n\r\nconst ControllbarTooltip = dynamic(() => import(\"../../mainComponent/footer/controllbar/controllbarTooltip\"));\r\nconst CloseIcon = dynamic(() => import(\"../../icon-components/closeIcon\"));\r\n\r\nconst speeds = [0.5, 0.8, 1, 1.25, 1.5, 1.75, 2]\r\n\r\nconst Speed = () => {\r\n\r\n    const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n\r\n    const dispatch = useAppDispatch();\r\n    useAppSelector(({ controller: { showMiniPlayer } }) => ({ showMiniPlayer }), shallowEqual);\r\n    useAppSelector(({ videoData: { videoElementSizeInfo, params } }) => ({ videoElementSizeInfo, params }), shallowEqual);\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    useOnClickOutside(speedRef, () => {\r\n        if (speedPopover) dispatch(setSpeedPopover(false));\r\n    });\r\n\r\n    useEffect(() => {\r\n        if (videoTag()) videoTag().playbackRate = settings.speed;\r\n    },[])\r\n\r\n    return (\r\n        <div className={`pl-inline-flex pl-relative`} ref={speedRef}>\r\n            <SpeedIcon\r\n                onClick={() => dispatch(setSpeedPopover(!speedPopover))}\r\n                onMouseOver={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(true)}\r\n                onMouseLeave={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n            />\r\n            {showTooltip && <ControllbarTooltip title=\"سرعت پخش (s)\" className=\"!pl-right-[-38px]\" />}\r\n            <Popover\r\n                classNames={`!pl-p-0 pl-overflow-hidden ${!conditions(ConditionName.isComplexPortrait) && \"pl-mb-[33px] pl-right-0\"} ${conditions(ConditionName.isMiniPlayer) && !conditions(ConditionName.isFullMobilePortrait) ? `!pl-fixed pl-rounded-r-none pl-w-[200px] !pl-mb-0` : \"pl-w-[285px]\"}`}\r\n                animation={conditions(ConditionName.isMiniPlayer) && !conditions(ConditionName.isFullMobilePortrait) ? (speedPopover ? \"animate__fadeInRight\" : \"animate__fadeOutRight\") : undefined}\r\n                styles={handlePopoverSizeInMiniPlayer()}\r\n                status={speedPopover}\r\n                onClose={() => dispatch(setSpeedPopover(false))}\r\n                type={conditions(ConditionName.isComplexPortrait) ? \"modal\" : \"popover\"}\r\n                isBlurBackground={conditions(ConditionName.isComplexPortrait)}\r\n                ref={speedRef}\r\n            >\r\n                <>\r\n                    <p className=\"pl-text-[15px] pl-font-medium pl-my-4 pl-mr-4\">سرعت پخش</p>\r\n                    <ul className=\"pl-flex pl-flex-col pl-p-0 pl-m-0\">\r\n                        {speeds.map((speed: number, index: number) => (\r\n                            <li\r\n                                key={index}\r\n                                className={`pl-flex pl-items-center pl-text-[14px] pl-pr-12 pl-relative pl-cursor-pointer pl-leading-6 hover:pl-bg-main/[0.1] hover:dark:pl-bg-white/[0.25] pl-p-1 ${settings.speed === speed && \"pl-tick-icon pl-bg-main-light hover:!pl-bg-main-light  pl-text-dark-5\"}`}\r\n                                onClick={() => {\r\n                                    if (!conditions(ConditionName.isStaticFormat)) sendFluentLog(speedChangeLog(speed));\r\n                                    dispatch(setSpeedPopover(false));\r\n                                    dispatch(setUserSettings({...settings, speed}));\r\n                                    createSettings({ ...settings, speed });\r\n                                    videoTag().playbackRate = speed;\r\n                                }}\r\n                            >\r\n                                {speed === 1\r\n                                    ?\r\n                                    <div className=\"pl-w-full\">معمولی</div>\r\n                                    :\r\n                                    <div className=\"pl-flex pl-items-center pl-gap-2 pl-w-full\">\r\n                                        <span>{speed}</span>\r\n                                        <CloseIcon className={`pl-w-3 pl-h-3 pl-mb-1 pl-stroke-gray-800 dark:pl-stroke-dark-5 ${settings.speed === speed && \"!pl-stroke-dark-5\"}`} />\r\n                                    </div>\r\n                                }\r\n                            </li>\r\n                        ))}\r\n                    </ul>\r\n                </>\r\n            </Popover>\r\n        </div>\r\n    )\r\n};\r\n\r\nexport default Speed;","import Image from \"next/image\";\r\nimport IMAGES from \"../../../../../images/importImages\";\r\nimport { conditions } from \"../../../../../helpers\";\r\nimport { ConditionName, ISpeedIconProps } from \"../../../../../interfaces\";\r\nimport { useAppSelector } from \"redux-share\";\r\nimport { shallowEqual } from 'react-redux'\r\n\r\nconst SpeedIcon = (props: ISpeedIconProps) => {\r\n\r\n    useAppSelector(({ controller: { showMiniPlayer } }) => ({ showMiniPlayer }), shallowEqual);\r\n    useAppSelector(({ videoData: { videoElementSizeInfo, params } }) => ({ videoElementSizeInfo, params }), shallowEqual);\r\n\r\n    return (\r\n        <>\r\n            {conditions(ConditionName.isSplusEnvironment) ? (\r\n                <i \r\n                    className={`fa-solid fa-gauge pl-cursor-pointer pl-text-white ${conditions(ConditionName.isMiniPlayer) ? \"pl-text-[13px]\" : \"pl-text-[22px]\"}`}\r\n                    {...props}\r\n                />\r\n            ) : (\r\n                <Image\r\n                    alt=\"speed-icon\"\r\n                    src={IMAGES.speed}\r\n                    className=\"pl-flex pl-items-center pl-cursor-pointer\"\r\n                    width={conditions(ConditionName.isMiniPlayer) ? 13 : 22}\r\n                    height={conditions(ConditionName.isMiniPlayer) ? 14 : 22}\r\n                    {...props}\r\n                />\r\n            )}\r\n        </>\r\n    )\r\n}\r\n\r\nexport default SpeedIcon;"],"mappings":"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","names":["init_esm_shims","useEffect","useRef","useState","init_esm_shims","Image","shallowEqual","Fragment","jsx","SpeedIcon","props","useAppSelector","showMiniPlayer","videoElementSizeInfo","params","conditions","Image","importImages_default","speedIcon_default","shallowEqual","dynamic","Fragment","jsx","jsxs","ControllbarTooltip","CloseIcon","speeds","Speed","showTooltip","setShowTooltip","useState","dispatch","useAppDispatch","useAppSelector","showMiniPlayer","videoElementSizeInfo","params","speedPopover","settings","speedRef","useRef","useOnClickOutside_default","setSpeedPopover","useEffect","videoTag","speedIcon_default","conditions","popover_default","handlePopoverSizeInMiniPlayer","speed","index","sendFluentLog","speedChangeLog","setUserSettings","createSettings","speed_default"]}