{"version":3,"sources":["../ui/src/components/player-components/share/shareDialog.tsx","../ui/src/components/player-components/copyText/copyText.tsx","../ui/src/components/icon-components/copy.tsx","../ui/src/components/player-components/checkbox/checkbox.tsx"],"sourcesContent":["import {memo, useEffect, useRef, useState} from \"react\";\r\nimport CopyText from \"../copyText/copyText\";\r\nimport CheckBox from \"../checkbox/checkbox\";\r\nimport Popover from \"../popover/popover\";\r\nimport { useAppSelector } from \"redux-share/hooks\";\r\nimport { sendFluentLog, shareDialogLog } from \"../../../../../logs\";\r\nimport { conditions, secondsToHMS, videoTag } from \"helpers\";\r\nimport { ConditionName, IShareDialogProps } from \"interfaces\";\r\nimport useOnClickOutside from \"helpers/hooks/useOnClickOutside\";\r\nimport { handlePopoverSizeInMiniPlayer } from \"helpers/helpers\";\r\nimport { shallowEqual } from 'react-redux'\r\n\r\nconst ShareDialog = ({ status, onClose, currentTime, markerId }: IShareDialogProps) => {\r\n\r\n    const [hasStartTime, setHasStartTime] = useState<boolean>(!!markerId);\r\n\r\n    useAppSelector(({ controller: { showMiniPlayer } }) => ({ showMiniPlayer }), shallowEqual);\r\n    useAppSelector(({ videoData: { params, videoElementSizeInfo } }) => ({ params, videoElementSizeInfo }), shallowEqual);\r\n\r\n    let url = window.location.href;\r\n    if(url.includes(\"?\")) {\r\n        url = url.split(\"&t=\", 1)[0];\r\n        if (hasStartTime) url = `${url}&t=${(currentTime ? currentTime : 0).toFixed(0)}`;\r\n    } else {\r\n        if (hasStartTime) url = `${url}?t=${(currentTime ? currentTime : 0).toFixed(0)}`;\r\n    }\r\n\r\n    useEffect(() => {\r\n        setHasStartTime(!!markerId); \r\n    },[markerId, status])\r\n\r\n    const handleCloseModal = () => {\r\n        onClose();\r\n        setTimeout(() => setHasStartTime(false), 500)\r\n    }\r\n\r\n    const handleShare = async() => {\r\n        sendFluentLog(shareDialogLog(videoTag().currentTime ? Number(videoTag().currentTime.toFixed(0)) : 0, hasStartTime, Number((currentTime ? currentTime : 0).toFixed(0)), markerId));\r\n        navigator.share({ url });\r\n        handleCloseModal();\r\n    }\r\n    const shareRef = useRef<any>(null)\r\n\r\n    useOnClickOutside(shareRef, () => onClose());\r\n\r\n    const share = (\r\n        <div className=\"pl-flex pl-flex-col pl-gap-4\" ref={shareRef}>\r\n            <p className=\"pl-text-[14px] pl-font-medium\">اشتراک گذاری</p>\r\n            <div className=\"pl-flex pl-gap-3\">\r\n                <CopyText\r\n                    isJump={hasStartTime}\r\n                    videoTime={Number((currentTime ? currentTime : 0).toFixed(0))}\r\n                    markerId={markerId}\r\n                    link={url}\r\n                />\r\n                <button className=\"pl-bg-secondary-200 dark:pl-bg-dark-1 pl-p-[13.33px] pl-rounded-[8px] pl-flex pl-items-center pl-gap-[2.28px]\" onClick={handleShare}>\r\n                    <span className=\"pl-w-[2.5px] pl-h-[2.5px] pl-bg-secondary-500 dark:pl-bg-secondary-50 pl-rounded-full\"></span>\r\n                    <span className=\"pl-w-[2.5px] pl-h-[2.5px] pl-bg-secondary-500 dark:pl-bg-secondary-50 pl-rounded-full\"></span>\r\n                    <span className=\"pl-w-[2.5px] pl-h-[2.5px] pl-bg-secondary-500 dark:pl-bg-secondary-50 pl-rounded-full\"></span>\r\n                </button>\r\n            </div>\r\n            <CheckBox\r\n                label={`پرش به ${secondsToHMS(Number((currentTime ? currentTime : 0).toFixed(0)))}`}\r\n                onChange={(value: boolean) => value ? setHasStartTime(true) : setHasStartTime(false)}\r\n                labelClassName=\"pl-text-[14px] pl-font-medium\"\r\n                defaultValue={!!markerId}\r\n            />\r\n        </div>\r\n    )\r\n\r\n    return (\r\n        <>\r\n            <Popover\r\n                status={status}\r\n                onClose={handleCloseModal}\r\n                isBlurBackground={!conditions(ConditionName.isMiniPlayer)}\r\n                classNames={`pl-p-4 ${conditions(ConditionName.isMiniPlayer) && !conditions(ConditionName.isFullMobilePortrait) && `!pl-fixed pl-rounded-r-none opacity-100`}`}\r\n                styles={{ width: conditions(ConditionName.isMiniPlayer) && !conditions(ConditionName.isFullMobilePortrait) ? 280 : 320, ...handlePopoverSizeInMiniPlayer() }}\r\n                animation={conditions(ConditionName.isMiniPlayer) && !conditions(ConditionName.isFullMobilePortrait) ? (status ? \"animate__fadeInLeft\" : \"animate__fadeOutLeft\") : undefined}\r\n                ref={shareRef}\r\n                type={(conditions(ConditionName.isMiniPlayer) && !conditions(ConditionName.isFullMobilePortrait)) ? \"popover\" : \"modal\"}\r\n            >\r\n                {share}\r\n            </Popover>\r\n        </>\r\n    )\r\n}\r\n\r\nexport default memo(ShareDialog);","import { useState } from \"react\";\r\nimport { useAppSelector } from \"redux-share/hooks\";\r\nimport { ConditionName, ICopyTextProps } from \"interfaces\";\r\nimport { conditions, videoTag } from \"helpers\";\r\nimport { sendFluentLog, shareCopyLog } from \"../../../../../logs\";\r\nimport CopyIcon from \"../../icon-components/copy\";\r\nimport { shallowEqual } from 'react-redux'\r\n\r\nconst CopyText = ({ link, markerId, videoTime, isJump }: ICopyTextProps): JSX.Element => {\r\n\r\n    const [isCopy, setIsCopy] = useState<boolean | undefined>(undefined);\r\n    const [buttonClassNames, setButtonClassNames] = useState<string>(\"\");\r\n    useAppSelector(({ controller: { showMiniPlayer } }) => ({ showMiniPlayer }), shallowEqual);\r\n    useAppSelector(({ videoData: { params, details, videoElementSizeInfo } }) => ({ params, details, videoElementSizeInfo }), shallowEqual);\r\n\r\n    const handleCopy = (event:any) => {\r\n        event.preventDefault();\r\n        setButtonClassNames(\"animate\")\r\n        setTimeout(() => setButtonClassNames(\"\"), 2000);\r\n        if (conditions(ConditionName.hasClipboard)) {\r\n            sendFluentLog(shareCopyLog(Number(videoTag().currentTime.toFixed(0)), isJump, videoTime, markerId));\r\n            navigator.clipboard.writeText(link!);\r\n            setIsCopy(true);\r\n            setTimeout(() => setIsCopy(false),2000)\r\n        }\r\n    }\r\n\r\n    return (\r\n        <button className={`pl-confetti-button ${buttonClassNames} ${!isCopy && \"active:pl-scale-75\"} pl-flex pl-flex-1 pl-items-center pl-justify-center pl-gap-2 pl-py-[11px] pl-bg-secondary-200 dark:pl-bg-dark-1 pl-rounded-[8px] ${isCopy ? \"pl-cursor-default\" : \"pl-cursor-pointer\"}`} onClick={!isCopy ? handleCopy : () => {} }>\r\n            <CopyIcon className=\"stroke-z-secondary-600 dark:stroke-secondary-50\"/>\r\n            <div className=\"pl-flex pl-items-center pl-justify-center pl-mr-10 pl-text-secondary-500 dark:pl-text-secondary-50\">\r\n                <span className={`pl-absolute animate__animated pl-text-secondary-500 dark:pl-text-secondary-50 ${isCopy === true && \"animate__fadeOutDown\"} ${isCopy === false && \"animate__fadeInUp\"}`} style={{ left: conditions(ConditionName.isMiniPlayer) && !conditions(ConditionName.isFullMobilePortrait) ? 60 : \"unset\"}}>کپی لینک</span>\r\n                <span className={`pl-absolute animate__animated pl-opacity-0 pl-transition-opacity pl-duration-300 pl-text-secondary-500 dark:pl-text-secondary-50 ${isCopy === true && \"animate__fadeInUp pl-opacity-100\"}`} style={{ left: conditions(ConditionName.isMiniPlayer) && !conditions(ConditionName.isFullMobilePortrait) ? 60 : \"unset\" }}>لینک کپی شد</span>\r\n            </div>\r\n        </button> \r\n    )\r\n}\r\n\r\nexport default CopyText;","import { ICopyProps } from \"interfaces\";\r\n\r\nconst CopyIcon = ({ className, onClick }: ICopyProps) => {\r\n    return (\r\n        <svg width=\"19\" height=\"18\" viewBox=\"0 0 19 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" className={className} onClick={onClick}>\r\n            <path d=\"M10.7783 8.20508C12.4658 9.89258 12.4658 12.6226 10.7783 14.3026C9.09078 15.9826 6.36078 15.9901 4.68078 14.3026C3.00078 12.6151 2.99328 9.88508 4.68078 8.20508\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n            <path d=\"M8.92562 10.0577C7.17063 8.30266 7.17063 5.45266 8.92562 3.69016C10.6806 1.92766 13.5306 1.93516 15.2931 3.69016C17.0556 5.44516 17.0481 8.29516 15.2931 10.0577\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n        </svg>\r\n    )\r\n}\r\n\r\nexport default CopyIcon;","import { ICheckboxProps } from \"interfaces\";\r\nimport { useEffect, useState } from \"react\";\r\n\r\nconst CheckBox = ({ label, onChange, defaultValue = false, labelClassName }: ICheckboxProps) => {\r\n\r\n    const [isChecked, setIsChecked] = useState<boolean>(defaultValue);\r\n\r\n    useEffect(() => setIsChecked(defaultValue), [defaultValue])\r\n\r\n    const handleChangeCheckbox = (event:any) => {\r\n        setIsChecked(event.target.checked);\r\n        onChange(event.target.checked);\r\n    }\r\n\r\n    return (\r\n        <label className=\"pl-container-checkbox\">\r\n            <span className={`pl-text-[14px] pl-font-medium pl-mr-8 pl-cursor-pointer ${labelClassName}`}>{label}</span>\r\n            <input type=\"checkbox\" className=\"pl-cursor-pointer\" checked={isChecked} onChange={handleChangeCheckbox} />\r\n            <span className={`pl-checkmark pl-cursor-pointer ${isChecked && \"pl-bg-main-light pl-border-none\"}`}/>\r\n        </label>\r\n    )\r\n}\r\n\r\nexport default CheckBox;"],"mappings":"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","names":["init_esm_shims","memo","useEffect","useRef","useState","init_esm_shims","useState","init_esm_shims","jsx","jsxs","CopyIcon","className","onClick","copy_default","shallowEqual","jsx","jsxs","CopyText","link","markerId","videoTime","isJump","isCopy","setIsCopy","useState","buttonClassNames","setButtonClassNames","useAppSelector","showMiniPlayer","params","details","videoElementSizeInfo","handleCopy","event","conditions","sendFluentLog","shareCopyLog","videoTag","copy_default","copyText_default","init_esm_shims","useEffect","useState","jsx","jsxs","CheckBox","label","onChange","defaultValue","labelClassName","isChecked","setIsChecked","handleChangeCheckbox","event","checkbox_default","shallowEqual","Fragment","jsx","jsxs","ShareDialog","status","onClose","currentTime","markerId","hasStartTime","setHasStartTime","useState","useAppSelector","showMiniPlayer","params","videoElementSizeInfo","url","useEffect","handleCloseModal","handleShare","sendFluentLog","shareDialogLog","videoTag","shareRef","useRef","useOnClickOutside_default","share","copyText_default","checkbox_default","secondsToHMS","value","popover_default","conditions","handlePopoverSizeInMiniPlayer","shareDialog_default","memo"]}