{"version":3,"sources":["../ui/src/components/player-components/complexPortrait/complexPortrait.tsx","../ui/src/components/mainComponent/footer/controllbar/portraitControlbar.tsx"],"sourcesContent":["import {memo, useState} from \"react\";\r\nimport PortraitControlbar from \"../../mainComponent/footer/controllbar/portraitControlbar\";\r\nimport { useAppSelector } from \"redux-share/hooks\";\r\nimport { conditions, getRemainingTime, unitization } from \"helpers\";\r\nimport { ConditionName } from \"interfaces\";\r\nimport { shallowEqual } from 'react-redux'\r\nimport dynamic from \"next/dynamic\";\r\nimport LiveStatus from \"../liveStatus/liveStatus\";\r\n\r\nconst TruncateMarkup = dynamic(() => import(\"react-truncate-markup\"));\r\nconst ElapsedTime = dynamic(() => import(\"../elapsedTime/elapsedTime\"));\r\nconst Tags = dynamic(() => import(\"../tags/tags\"));\r\nconst OnlineViewersIcon = dynamic(() => import(\"../../icon-components/onlineViewerIcon\"));\r\nconst MovieDetail = dynamic(() => import(\"../movie/movieDetail/movieDetail\"));\r\nconst Trailer = dynamic(() => import(\"../trailer/trailer\"));\r\nconst Skeleton = dynamic(() => import(\"../skeleton/skeleton\"));\r\nconst PlayList = dynamic(() => import(\"../playList/playList\"));\r\nconst RecommendationList = dynamic(() => import(\"../recommendationList/recommendationList\"));\r\nconst Comments = dynamic(() => import(\"../comments/comments\"));\r\nconst TabNavigator = dynamic(() => import(\"../tabNavigator/TabNavigator\"));\r\n\r\nconst ComplexPortrait = () => {\r\n\r\n    const [showCompleteDescription, setShowCompleteDescription] = useState<boolean>(false);\r\n\r\n    const { details, params, onlineViewers } = useAppSelector(({ videoData: { details, params, onlineViewers, recommendationList, playList, trailer } }) => ({ details, params, onlineViewers, recommendationList, playList, trailer }), shallowEqual);\r\n    useAppSelector(({ controller: { isEnded } }) => ({ isEnded }), shallowEqual);\r\n    useAppSelector(({ user: { isLogin } }) => ({ isLogin }), shallowEqual);\r\n    useAppSelector(({ popovers: { playListPopover } }) => ({ playListPopover }), shallowEqual);\r\n    useAppSelector(({ comments: { canAddComment, commentsCount } }) => ({ canAddComment, commentsCount }), shallowEqual);\r\n\r\n    return (\r\n        <div className=\"pl-h-screen pl-bg-white dark:!pl-bg-dark-1 pl-overflow-x-hidden pl-overflow-y-auto no-scrollbar\">\r\n            <div className={`pl-flex pl-flex-col pl-gap-4 pl-mx-3 pl-mb-3 pl-bg-white dark:pl-bg-dark-1`}>\r\n                <div className=\"pl-text-white pl-mt-2\">\r\n                    <div className=\"pl-flex pl-gap-1 pl-justify-between pl-items-start\">\r\n                        <h1 className=\"pl-text-[14px] pl-text-gray-800 dark:pl-text-dark-5 pl-font-bold pl-two-line\">{conditions(ConditionName.hasTitle) ? details.title : params.id}</h1>\r\n                        {conditions(ConditionName.showElapsedTime) && <ElapsedTime/>}\r\n                        {conditions(ConditionName.showLiveStatusInComplexPortrait) && !conditions(ConditionName.isIOSLive) && <LiveStatus/>}\r\n                    </div>\r\n                    {conditions(ConditionName.hasTags) && (\r\n                        <div className=\"pl-flex pl-overflow-hidden pl-mt-4 pl-mb-3\">\r\n                            <Tags tagId={String(params.id)} tags={details.tag!} />\r\n                        </div>\r\n                    )\r\n                    }\r\n                    <div\r\n                        className=\"pl-flex pl-items-center pl-gap-1 pl-text-[12px] pl-text-dark-4 dark:pl-text-dark-4 pl-font-normal\">\r\n                        {\r\n                            conditions(ConditionName.isLiveParam) ? (\r\n                                conditions(ConditionName.thresholdOnlineViewers) && (\r\n                                    <div className={`pl-flex pl-items-center pl-gap-1`}>\r\n                                        <OnlineViewersIcon className={`${conditions(ConditionName.isDarkMode) ? \"pl-fill-dark-4\" : \"pl-fill-z-gray-500\"}`}/>\r\n                                        <div\r\n                                            className=\"pl-flex pl-items-center pl-gap-0.5 pl-text-z-gray-500 dark:pl-text-dark-5 pl-text-[12px] pl-font-normal pl-relative pl-top-[1px]\">\r\n                                            <div>{unitization(onlineViewers!).unit}</div>\r\n                                            <div>{unitization(onlineViewers!).value}</div>\r\n                                        </div>\r\n                                        {\" .\"}\r\n                                    </div>\r\n                                )\r\n                            ) : (!conditions(ConditionName.hasMovieDetails) && conditions(ConditionName.showVideoUploadTime)) &&\r\n                                <div>{getRemainingTime(details.start_time!)}{\" .\"}</div>\r\n                        }\r\n                        {conditions(ConditionName.showVideoViewers) && (\r\n                          <div className=\"pl-flex pl-items-center pl-gap-1 pl-text-center\">\r\n                            <span>{conditions(ConditionName.isLiveParam) ? details.live_viewers : details.viewers}</span>\r\n                            <span>بازدید</span>\r\n                          </div>\r\n                        )}\r\n                    </div>\r\n                </div>\r\n                <PortraitControlbar />\r\n                {(conditions(ConditionName.hasMovieDetails) || (conditions(ConditionName.hasDescription) && !conditions(ConditionName.hasTrailer))) && (\r\n                    <div className=\"pl-border-b pl-border-secondary-500 pl-pb-4\">\r\n                        <div className=\"pl-flex pl-flex-col pl-gap-4 pl-bg-gray-highLight dark:pl-bg-dark-2 pl-rounded-[16px] pl-px-3 pl-py-4\">\r\n                            {conditions(ConditionName.hasMovieDetails) && <MovieDetail />}\r\n                            {\r\n                                !conditions(ConditionName.hasTrailer) && conditions(ConditionName.hasDescription) && (\r\n                                    <>\r\n                                        {showCompleteDescription ? (\r\n                                            <div\r\n                                                className=\"pl-max-w-screen pl-overflow-hidden pl-text-[14px] pl-font-normal pl-whitespace-pre-wrap pl-flex-1 no-scrollbar pl-text-justify\">\r\n                                                {details.description}\r\n                                                <span onClick={() => setShowCompleteDescription(false)} className=\"pl-text-primary-600\">{\"کمتر...\"}</span>\r\n                                            </div>\r\n                                        ) :\r\n                                            (\r\n                                                <TruncateMarkup\r\n                                                    ellipsis={() => <span onClick={() => setShowCompleteDescription(true)} className=\"pl-text-primary-600\">{\" بیشتر...\"}</span>}\r\n                                                    lines={2}\r\n                                                >\r\n                                                    <div className=\"pl-text-[14px] pl-font-normal pl-flex-1 no-scrollbar pl-text-justify\">{details.description}</div>\r\n                                                </TruncateMarkup>\r\n                                            )}\r\n                                    </>\r\n                                )\r\n                            }\r\n                        </div>\r\n                    </div>\r\n                )}\r\n                {!conditions(ConditionName.isBeforeRequest) && <Trailer />}\r\n            </div>\r\n            {\r\n                conditions(ConditionName.isBeforeRequest) ?\r\n                <div className=\"pl-mx-3\">\r\n                    {\r\n                        Array.from(Array(5).keys()).map((item, index) => <Skeleton key={index}/>)\r\n                    }\r\n                </div>\r\n                :\r\n                    <>\r\n                        {conditions(ConditionName.hasPlayList) && <PlayList/>}\r\n                        {conditions(ConditionName.showCommentComponent) && <Comments/>}\r\n                        {conditions(ConditionName.hasRecommendationList) && conditions(ConditionName.showRecommendationList) && <RecommendationList/>}\r\n                    </>\r\n            }\r\n            {conditions(ConditionName.showTabNavigator) && <TabNavigator />}\r\n\r\n        </div>\r\n    )\r\n}\r\n\r\nexport default memo(ComplexPortrait);","import { useEffect, useState } from 'react'\r\nimport LikeDisLike from '../../../player-components/likeDisLike/likeDisLike'\r\nimport ShareDialog from '../../../player-components/share/shareDialog'\r\nimport { useAppDispatch, useAppSelector } from 'redux-share/hooks'\r\nimport { conditions, videoTag } from 'helpers'\r\nimport { setClearPopoversSlice } from 'redux-share/slices/popoversSlice'\r\nimport { ConditionName } from 'interfaces'\r\nimport ShareIcon from '../../../icon-components/shareIcon';\r\nimport { shallowEqual } from \"react-redux\";\r\nimport dynamic from \"next/dynamic\";\r\nimport MarkersList from '../../../player-components/markersList/markersList'\r\n\r\nconst Chat = dynamic(() => import(\"../../../player-components/chat/chat\"));\r\nconst MultiLive = dynamic(() => import(\"../../../player-components/multiLive/multiLive\"));\r\nconst PersonalMarkersPopover = dynamic(() => import(\"../../../player-components/personalMarkers/personalMarkers\"));\r\nconst Bookmark = dynamic(() => import(\"../../../player-components/bookmark/bookmark\"));\r\nconst Download = dynamic(() => import(\"../../../player-components/download/download\"));\r\nconst PlayListTab = dynamic(() => import(\"../../../player-components/playList/playlistTab\"));\r\nconst Feedback = dynamic(() => import(\"../../../player-components/feedback/feedback\"));\r\n\r\nconst PortraitControlbar = () => {\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  const [showShareDialog, setShowShareDialog] = useState<boolean>(false)\r\n  const [videoCurrentTime, setVideoCurrentTime] = useState<number>(0);\r\n\r\n  useAppSelector(({ chats: { chatEnabled } }) => ({ chatEnabled }), shallowEqual);\r\n\r\n  useEffect(() => {\r\n    if (showShareDialog) setVideoCurrentTime(videoTag().currentTime)\r\n  }, [showShareDialog])\r\n\r\n  const handleShowSharePopover = () => {\r\n    dispatch(setClearPopoversSlice())\r\n    setShowShareDialog(true)\r\n  }\r\n\r\n  return (\r\n    <div\r\n      className={`pl-text-white pl-text-[14px] pl-flex pl-flex-nowrap pl-items-center pl-gap-2 pl-overflow-x-auto pl-border-b pl-border-secondary-500 pl-pb-4 no-scrollbar`}>\r\n      <LikeDisLike />\r\n      {conditions(ConditionName.chatEnabled) && <Chat />}\r\n      {conditions(ConditionName.showMultiLive) && <MultiLive />}\r\n      {conditions(ConditionName.hasMarkers) && <MarkersList />}\r\n      {conditions(ConditionName.showPersonalMarker) && <PersonalMarkersPopover />}\r\n      {conditions(ConditionName.showBookmark) && <Bookmark />}\r\n      {conditions(ConditionName.hasDownloadLinks) && <Download />}\r\n      <div\r\n        className='pl-flex pl-items-center pl-gap-[14px] pl-rounded-[20px] pl-text-secondary-700 dark:pl-text-secondary-50 pl-bg-gray-100 dark:pl-bg-dark-3 pl-px-4 pl-py-[7px] pl-cursor-pointer'\r\n        onClick={handleShowSharePopover}>\r\n        <ShareIcon\r\n          className={`pl-flex pl-items-center pl-w-15 pl-h-15 pl-fill-gray-800 dark:pl-fill-white pl-relative`} />\r\n        <span className='pl-whitespace-nowrap'>اشتراک گذاری</span>\r\n      </div>\r\n      {conditions(ConditionName.showPlayListTabTouchscreen) && <PlayListTab/>}\r\n      {conditions(ConditionName.showFeedback) && <Feedback />}\r\n      <ShareDialog currentTime={videoCurrentTime} status={showShareDialog} onClose={setShowShareDialog} />\r\n\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default PortraitControlbar"],"mappings":"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","names":["init_esm_shims","memo","useState","init_esm_shims","useEffect","useState","shallowEqual","dynamic","jsx","jsxs","Chat","dynamic","MultiLive","PersonalMarkersPopover","Bookmark","Download","PlayListTab","Feedback","PortraitControlbar","dispatch","useAppDispatch","showShareDialog","setShowShareDialog","useState","videoCurrentTime","setVideoCurrentTime","useAppSelector","chatEnabled","shallowEqual","useEffect","videoTag","handleShowSharePopover","setClearPopoversSlice","likeDisLike_default","conditions","markersList_default","shareIcon_default","shareDialog_default","portraitControlbar_default","shallowEqual","dynamic","Fragment","jsx","jsxs","TruncateMarkup","dynamic","ElapsedTime","Tags","OnlineViewersIcon","MovieDetail","Trailer","Skeleton","PlayList","RecommendationList","Comments","TabNavigator","ComplexPortrait","showCompleteDescription","setShowCompleteDescription","useState","details","params","onlineViewers","useAppSelector","recommendationList","playList","trailer","shallowEqual","isEnded","isLogin","playListPopover","canAddComment","commentsCount","conditions","liveStatus_default","unitization","getRemainingTime","portraitControlbar_default","item","index","complexPortrait_default","memo"]}