{"version":3,"sources":["../ui/src/components/player-components/playList/playList.tsx","../ui/src/components/player-components/playList/playlistVideoCards.tsx"],"sourcesContent":["import { conditions, responseValidator } from \"helpers\";\r\nimport useOnClickOutside from \"helpers/hooks/useOnClickOutside\";\r\nimport IMAGES from \"../../../../../images/importImages\";\r\nimport { ConditionName } from \"interfaces\";\r\nimport { useAppDispatch, useAppSelector } from \"redux-share/hooks\";\r\nimport { setPlayListPopover } from \"redux-share/slices/popoversSlice\";\r\nimport Image from \"next/image\";\r\nimport { useState, useEffect, useRef, memo } from \"react\";\r\nimport { shallowEqual } from 'react-redux'\r\nimport useIntersect from \"helpers/hooks/useIntersect\";\r\nimport PlayListVideoCards from \"./playlistVideoCards\";\r\nimport { playListClickLog, sendFluentLog } from \"logs\";\r\nimport { getPlaylistVideos, handlePlayListTabClick } from 'redux-share/actions'\r\nimport dynamic from \"next/dynamic\";\r\n\r\nconst Popover = dynamic(() => import(\"../popover/popover\"));\r\nconst TouchScreenPlaylistObserver = dynamic(() => import(\"./touchScreenPlaylistObserver\"));\r\n\r\nconst PlayList = () => {\r\n\r\n    const dispatch = useAppDispatch();\r\n    const {playList} = useAppSelector(({ videoData: { params, playList, isComplexDesktop, isComplexPortrait } }) => ({ params, playList, isComplexDesktop, isComplexPortrait }), shallowEqual);\r\n    const { playListPopover } = useAppSelector(({ popovers: { playListPopover } }) => ({ playListPopover }), shallowEqual);\r\n    useAppSelector(({ controller: { isFullScreen } }) => ({ isFullScreen }), shallowEqual);\r\n    const [scrollEnd, setScrollEnd] = useState<boolean>(false)\r\n    const [videoPlaylist, setVideoPlaylist] = useState<{ video: any, order: number }[]|undefined>(undefined);\r\n    const [selectedPlaylist, setSelectedPlaylist] = useState<number>(playList![0].id)\r\n    const playListRef = useRef<any>(null);\r\n    const videoPlaylistRef = useRef<any>(null);\r\n    useOnClickOutside(playListRef, () => dispatch(setPlayListPopover(false)));\r\n    \r\n    useEffect(() => {\r\n        if (scrollEnd && (videoPlaylist === undefined || (playList!.find((item:any)=> item.id === selectedPlaylist) as any).count !== (videoPlaylist.length))) fetchData();\r\n        else setScrollEnd(false)\r\n      }, [scrollEnd]) \r\n      \r\n      useEffect(()=>{\r\n        fetchData();\r\n      }, [])\r\n\r\n      useEffect(()=>{\r\n        if(!!videoPlaylist && conditions(ConditionName.isComplexDesktop) && !conditions(ConditionName.isFullScreen)) videoPlaylistRef.current = videoPlaylist\r\n      }, [videoPlaylist])\r\n\r\n      const fetchData = async () => {\r\n        const videoPlaylistTemp = videoPlaylist !== undefined ? videoPlaylist : [];\r\n        const { data, status } = await getPlaylistVideos(selectedPlaylist, videoPlaylistTemp.length);\r\n        if (responseValidator(status)) {\r\n            setVideoPlaylist([...videoPlaylistTemp, ...data.results])\r\n        }\r\n        setScrollEnd(false)\r\n      }\r\n\r\n    const handleIntersect = ([entry]: IntersectionObserverEntry[]) => {\r\n        if (entry.isIntersecting && conditions(ConditionName.isComplexDesktop) && !!videoPlaylistRef.current) setScrollEnd(true)\r\n    }\r\n    \r\n    const observerRef = useIntersect(handleIntersect)\r\n\r\n    const playListVideoCarts = <PlayListVideoCards  \r\n                                        onClick={(item:any)=> {\r\n                                            setSelectedPlaylist(item);\r\n                                            setVideoPlaylist(undefined);\r\n                                            sendFluentLog(playListClickLog(item));\r\n                                        }}\r\n                                        playList={playList}\r\n                                        scrollEnd={scrollEnd}\r\n                                        selectedPlaylist={selectedPlaylist}\r\n                                        videoPlaylist={videoPlaylist}/>\r\n\r\n    let playListContent:unknown = null;\r\n\r\n    if (conditions(ConditionName.isTouchScreenPortrait)) {\r\n        playListContent = (\r\n            <>\r\n                <Popover\r\n                    classNames={`!pl-p-0 pl-left-0`}\r\n                    status={playListPopover}\r\n                    onClose={() => {\r\n                        dispatch(setPlayListPopover(false))\r\n                        setVideoPlaylist(undefined);\r\n                    }}\r\n                    ref={undefined}\r\n                    isFullHeight={true}\r\n                    headerTitle={playList!.length === 1 ? `لیست پخش \"${playList![0].title}\"` : \"لیست پخش\"}\r\n                    isHeader={true}\r\n                    type=\"modal\"\r\n                    isHasCatchUpLineOnTop={true}\r\n                >\r\n                    <div className=\"pl-flex pl-flex-col pl-gap-4 pl-mb-4\">\r\n                        {playListVideoCarts}\r\n                        {playListPopover && <TouchScreenPlaylistObserver setScrollEnd={setScrollEnd}/>}\r\n                    </div>\r\n                </Popover>\r\n            </>\r\n        )\r\n    } else if(conditions(ConditionName.isFullScreen)) {\r\n        playListContent = (\r\n            <>\r\n                <div className=\"pl-flex pl-items-center pl-cursor-pointer\" onClick={handlePlayListTabClick}>\r\n                    <Image src={IMAGES.playList} alt=\"playList-icon\" width={22} height={22} />\r\n                </div>\r\n                <Popover\r\n                    status={playListPopover}\r\n                    onClose={() => {\r\n                        dispatch(setPlayListPopover(false));\r\n                        setVideoPlaylist(undefined);\r\n                    }}\r\n                    ref={playListRef} \r\n                    isHeader={true}\r\n                    headerTitle={playList!.length === 1 ? `لیست پخش \"${playList![0].title}\"` : \"لیست پخش\"}\r\n                    isBlurBackground={true}\r\n                    type=\"modal\"\r\n                    classNames={`pl-w-[340px] pl-h-screen pl-rounded-r-none ${conditions(ConditionName.isDarkMode) ? \"!pl-bg-dark-3\" : \"!pl-bg-white\" }`}\r\n                    animation={!!playListPopover ? \"animate__fadeInRight\" : \"animate__fadeOutRight\"}\r\n                    parentClassNames=\"!pl-justify-start\"\r\n                >\r\n                    <div className=\"pl-flex pl-flex-col pl-gap-4 pl-mb-4\">\r\n                        {playListVideoCarts}\r\n                        {playListPopover && <TouchScreenPlaylistObserver setScrollEnd={setScrollEnd}/>}\r\n                    </div>\r\n                </Popover>\r\n            </>\r\n        )\r\n    } else if (conditions(ConditionName.isComplexDesktop)) {\r\n        playListContent = (\r\n            <>\r\n                <div className=\"pl-overflow-auto pl-flex pl-flex-col pl-gap-4 pl-mb-4\">\r\n                    <p className=\"pl-text-[16px] pl-font-bold pl-text-secondary-900 dark:pl-text-secondary-50 pl-border-b pl-border-secondary-400 pl-pb-3 pl-ml-6\">{playList!.length === 1 ? `لیست پخش \"${playList![0].title}\"` : \"لیست های پخش\"}</p>\r\n                    {playListVideoCarts}\r\n                    <div id='observer' className='pl-bg-transparent pl-pt-5' ref={observerRef} />\r\n                </div>\r\n                <div className=\"pl-w-auto pl-h-[1px] pl-bg-secondary-400 dark:pl-bg-secondary-100 pl-ml-6\" />\r\n            </>\r\n        )\r\n    }\r\n\r\n    return <>{playListContent}</>\r\n}\r\n\r\nexport default memo(PlayList);","import { conditions } from \"helpers\";\r\nimport { ConditionName } from \"interfaces\";\r\nimport Image from \"next/image\";\r\nimport IMAGES from \"images\";\r\nimport { useEffect } from \"react\";\r\nimport { useState } from \"react\";\r\nimport { handleScrollLeft, handleScrollRight } from \"redux-share/actions\";\r\nimport dynamic from \"next/dynamic\";\r\n\r\nconst SinglePlayList = dynamic(() => import(\"./singlePlayList\"));\r\n\r\ninterface PlaylistVideoCards {\r\n    onClick: (playlistId:number)=> void,\r\n    playList: any,\r\n    videoPlaylist: any,\r\n    selectedPlaylist: number,\r\n    scrollEnd: boolean\r\n}\r\n\r\nconst PlayListVideoCards = (props: PlaylistVideoCards) => {\r\n\r\n    const [isHover, setIsHover] = useState<boolean>(false);\r\n    const [isScrollable, setIsScrollable] = useState<boolean>(true);\r\n\r\n    useEffect(() => {\r\n        if (document.getElementById(\"playlistTab\") && conditions(ConditionName.isComplexDesktop)) handleScroll();\r\n    }, [document.getElementById(\"playlistTab\")])\r\n\r\n    const handleScroll = () => setIsScrollable(!!document.getElementById(\"playlistTab\") && Math.abs(Math.abs(document.getElementById(\"playlistTab\")!.scrollWidth) - (document.getElementById(\"playlistTab\")!.getBoundingClientRect().width + Math.abs(document.getElementById(\"playlistTab\")!.scrollLeft))) <= 1)\r\n\r\n    return (\r\n        <>\r\n            <div className={`pl-flex pl-flex-col pl-gap-2`}>\r\n              <div className=\"pl-relative pl-flex pl-flex-col pl-mx-4\" onMouseOut={() => setIsHover(false)} onMouseOver={() => setIsHover(true)}>\r\n                {conditions(ConditionName.isComplexDesktop) && isHover && !isScrollable && (\r\n                    <div className=\"pl-flex pl-absolute pl-left-0 bg-red-500\" onClick={(event:any) => handleScrollLeft(event,\"playlistTab\")} style={{width: 10, height: 10}}>\r\n                        <Image\r\n                            src={conditions(ConditionName.isDarkMode) ? IMAGES.rightArrow : IMAGES.lightRightArrow}\r\n                            className={`pl-cursor-pointer pl-h-full pl-w-full`}\r\n                            layout={\"fill\"}\r\n                            alt=\"right-arrow\"\r\n                        />\r\n                    </div>\r\n                )}\r\n\r\n                <div className=\"pl-flex pl-w-full pl-items-center no-scrollbar pl-overflow-auto pl-gap-10\" id={\"playlistTab\"}>\r\n                    {\r\n                        props.playList.length > 1 ? props.playList.map((item:any)=>{\r\n                            return (\r\n                            <div onClick={() => props.onClick(item.id)} className={`${item.id === props.selectedPlaylist ? \"!pl-text-z-gray-800 dark:!pl-text-white\" : \"!pl-text-[#939598]\"} !pl-whitespace-nowrap pl-w-fit pl-cursor-pointer pl-text-[14px] pl-font-[700] pl-text-secondary-900 dark:pl-text-secondary-50`}>\r\n                                {item.title}\r\n                                {item.id === props.selectedPlaylist && <div className=\"dark:pl-bg-white pl-w-full pl-h-[3px] pl-bg-gray-800 pl-rounded-t-[4px]\"/>}\r\n                            </div>\r\n                            )\r\n                        }) : <></>\r\n                    }\r\n                </div>\r\n                {\r\n                conditions(ConditionName.isComplexDesktop) && isHover && !isScrollable &&\r\n                <div className=\"pl-flex pl-absolute pl-right-0\" onClick={(event:any) => handleScrollRight(event,\"playlistTab\")} style={{\r\n                    width: 10, height: 10\r\n                }}>\r\n                    <Image\r\n                        src={conditions(ConditionName.isDarkMode) ? IMAGES.leftArrow : IMAGES.lightLeftArrow}\r\n                        className={`pl-cursor-pointer pl-h-full pl-w-full`}\r\n                        layout={\"fill\"}\r\n                        alt=\"left-arrow\"\r\n                    />\r\n                </div>\r\n            }\r\n                {props.playList.length > 1 && <hr/>}\r\n              </div>\r\n                <div className=\"pl-flex pl-flex-col pl-gap-2\">\r\n                    {(props.videoPlaylist !== undefined) && <SinglePlayList playList={{title: (props.playList.map((item:any)=> item.id === props.selectedPlaylist) as any).title, videos: props.videoPlaylist}}/>}\r\n                    {/* {(props.scrollEnd || props.videoPlaylist === undefined) && Array.from(Array(4).keys()).map((item)=> <Skeleton key={item}/>)} */}\r\n                </div>\r\n            </div>\r\n        </>\r\n    )\r\n}\r\n\r\nexport default PlayListVideoCards;"],"mappings":"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","names":["init_esm_shims","Image","useState","useEffect","useRef","memo","shallowEqual","init_esm_shims","Image","useEffect","useState","dynamic","Fragment","jsx","jsxs","SinglePlayList","PlayListVideoCards","props","isHover","setIsHover","useState","isScrollable","setIsScrollable","useEffect","conditions","handleScroll","event","handleScrollLeft","Image","importImages_default","item","handleScrollRight","playlistVideoCards_default","dynamic","Fragment","jsx","jsxs","Popover","TouchScreenPlaylistObserver","PlayList","dispatch","useAppDispatch","playList","useAppSelector","params","isComplexDesktop","isComplexPortrait","shallowEqual","playListPopover","isFullScreen","scrollEnd","setScrollEnd","useState","videoPlaylist","setVideoPlaylist","selectedPlaylist","setSelectedPlaylist","playListRef","useRef","videoPlaylistRef","useOnClickOutside_default","setPlayListPopover","useEffect","item","fetchData","conditions","videoPlaylistTemp","data","status","getPlaylistVideos","responseValidator","observerRef","useIntersect_default","entry","playListVideoCarts","playlistVideoCards_default","sendFluentLog","playListClickLog","playListContent","handlePlayListTabClick","Image","importImages_default","playList_default","memo"]}