{"version":3,"sources":["../ui/src/components/player-components/InstagramEmoji/InstagramEmoji.tsx","../ui/src/components/player-components/InstagramEmoji/uni/UniEmoji.tsx"],"sourcesContent":["import UniEmoji from \"./uni/UniEmoji\";\r\nimport {useEffect, useRef, useState} from \"react\";\r\nimport { useAppDispatch, useAppSelector } from \"redux-share/hooks\";\r\nimport { getEmojiUrl } from \"../../../../../services\";\r\nimport { setEmojiList1, setEmojiList2 } from \"redux-share/slices/videoDataSlice\";\r\nimport { activeElementsTime, checkParentTarget, conditions } from \"helpers\";\r\nimport { ConditionName, IEmoji } from \"interfaces\";\r\nimport useOnClickOutside from \"helpers/hooks/useOnClickOutside\";\r\nimport { shallowEqual } from 'react-redux';\r\nimport dynamic from \"next/dynamic\";\r\n\r\nconst Emoji = dynamic(() => import(\"../emoji/emoji\"));\r\nconst SprayEmoji = dynamic(() => import(\"./spray/SprayEmoji\"));\r\nconst ExplodeEmoji = dynamic(() => import(\"./explode/ExplodeEmoji\"));\r\n\r\nconst InstagramEmoji = () => {\r\n\r\n    const dispatch = useAppDispatch();\r\n    const { emojis, emojiList1, emojiList2, config } = useAppSelector(({ videoData: { emojis, emojiList1, emojiList2, config } }) => ({ emojis, emojiList1, emojiList2, config }), shallowEqual);\r\n    useAppSelector(({ controller: { activeElements } }) => ({ activeElements }), shallowEqual);\r\n\r\n    // user reaction\r\n    const [rightAccumulateEmoji, setRightAccumulateEmoji] = useState<string[]>([]);\r\n    const [leftAccumulateEmoji, setLeftAccumulateEmoji] = useState<string[]>([]);\r\n\r\n    // backend normalize coefficient\r\n    const [normCoefficient, setNormCoefficient] = useState<number>(0);\r\n\r\n    // backend response reaction --- RIGHT LIST ( list2 )\r\n    const [uniListRight, setUniListRight] = useState<{ code: string; count: number; }[]>([]);\r\n    const [explodeListRight, setExplodeListRight] = useState<string[]>([]);\r\n    const [sprayListRight, setSprayListRight] = useState<string[]>([]);\r\n\r\n    // backend response reaction --- LEFT LIST ( list1 )\r\n    const [uniListLeft, setUniListLeft] = useState<{ code: string; count: number; }[]>([]);\r\n    const [explodeListLeft, setExplodeListLeft] = useState<string[]>([]);\r\n    const [sprayListLeft, setSprayListLeft] = useState<string[]>([]);\r\n\r\n    // open state of reaction menu\r\n    const [openRightWoodSeller, setOpenRightWoodSeller] = useState<boolean>(false);\r\n    const [openLeftWoodSeller, setOpenLeftWoodSeller] = useState<boolean>(false);\r\n\r\n    const [closeTimeoutIdRight, setCloseTimeoutIdRight] = useState<any>(null);\r\n    const [closeTimeoutIdLeft, setCloseTimeoutIdLeft] = useState<any>(null);\r\n    const [transparencyIcon, setTransparencyIcon] = useState(false);\r\n    const [transparencyTimeoutId, setTransparencyTimeoutId] = useState<any>(null);\r\n\r\n\r\n    const rightWoodSellerRef = useRef(null);\r\n    const leftWoodSellerRef = useRef(null);\r\n\r\n    const rightSideUserEmojiReactionGenerator = async (sticker: any, id: string) => {\r\n        const createSticker = (sticker: any) => {\r\n            let CustomEmoji = document.createElement(\"img\");\r\n            CustomEmoji.src = `${getEmojiUrl()}/${sticker}.png`;\r\n            CustomEmoji.id = `${sticker}-${rightAccumulateEmoji.length}`;\r\n            CustomEmoji.classList.add(\"pl-user-uni-emoji-right\");\r\n            CustomEmoji.classList.add(\"pl-customEmoji\");\r\n            CustomEmoji.classList.add(`${sticker}-${rightAccumulateEmoji.length}`);\r\n            return CustomEmoji;\r\n        };\r\n\r\n        let commentSticker = await createSticker(sticker);\r\n        const parent = document.getElementById(id);\r\n        if (parent) {\r\n            parent.appendChild(commentSticker);\r\n            setTimeout(() => {\r\n                if (parent) parent?.removeChild(commentSticker);\r\n            }, 6 * 1000);\r\n        }\r\n    };\r\n\r\n    const leftSideUserEmojiReactionGenerator = async (sticker: any, id: string) => {\r\n        const createSticker = (sticker: any) => {\r\n            let CustomEmoji = document.createElement(\"img\");\r\n            CustomEmoji.src = `${getEmojiUrl()}/${sticker}.png`;\r\n            CustomEmoji.id = `${sticker}-${leftAccumulateEmoji.length}`;\r\n            CustomEmoji.classList.add(\"pl-user-uni-emoji-left\");\r\n            CustomEmoji.classList.add(\"pl-customEmoji-left\");\r\n            CustomEmoji.classList.add(`${sticker}-${leftAccumulateEmoji.length}`);\r\n            return CustomEmoji;\r\n        };\r\n\r\n        let commentSticker = await createSticker(sticker);\r\n        const parent = document.getElementById(id);\r\n        if (parent) {\r\n            parent.appendChild(commentSticker);\r\n            setTimeout(() => {\r\n                if (parent) parent?.removeChild(commentSticker);\r\n            }, 6 * 1000);\r\n        }\r\n    };\r\n\r\n    const getRightUserReaction = (emojiCode: string) => {\r\n        const recentEmojiList = emojiList2;\r\n        if (recentEmojiList.length === 0 || !recentEmojiList.includes(emojiCode)) {\r\n            dispatch(setEmojiList2([...emojiList2, emojiCode]));\r\n        }\r\n    }\r\n    const getLeftUserReaction = (emojiCode: string) => {\r\n        const recentEmojiList = emojiList1;\r\n        if (recentEmojiList.length === 0 || !recentEmojiList.includes(emojiCode)) {\r\n            dispatch(setEmojiList1([...emojiList1, emojiCode]));\r\n        }\r\n    }\r\n\r\n    const timeoutHandlerMenu = (setOpenWoodSeller: any, setCloseTimeoutId: any) => {\r\n        let timeoutId: any;\r\n        timeoutId = setTimeout(() => {\r\n            setOpenWoodSeller(false);\r\n        }, activeElementsTime);\r\n        setCloseTimeoutId(timeoutId);\r\n    }\r\n\r\n    useEffect(() => {\r\n        if (openLeftWoodSeller) timeoutHandlerMenu(setOpenLeftWoodSeller, setCloseTimeoutIdLeft);\r\n        else clearTimeout(closeTimeoutIdLeft);\r\n    }, [openLeftWoodSeller]);\r\n\r\n    useEffect(() => {\r\n        if (openRightWoodSeller) timeoutHandlerMenu(setOpenRightWoodSeller, setCloseTimeoutIdRight);\r\n        else clearTimeout(closeTimeoutIdRight);\r\n    }, [openRightWoodSeller]);\r\n\r\n    useEffect(() => {\r\n        if (conditions(ConditionName.hasEmojis)) {\r\n            let maxCountOfEmojiList1: number = 0;\r\n            let maxCountOfEmojiList2: number = 0;\r\n            let uniListTempRight: any[] = [];\r\n            let ExplodeListTempRight: any[] = [];\r\n            let sprayListTempRight: any[] = [];\r\n            let uniListTempLeft: any[] = [];\r\n            let ExplodeListTempLeft: any[] = [];\r\n            let sprayListTempLeft: any[] = [];\r\n            emojis.emoji_list_2_result.forEach((item: IEmoji) => {\r\n                if (item.explode) {\r\n                    ExplodeListTempRight.push(item.code);\r\n                }\r\n                if (item.spray) {\r\n                    sprayListTempRight.push(item.code);\r\n                }\r\n                if (item.count > 0) {\r\n                    maxCountOfEmojiList2 = item.count;\r\n                    uniListTempRight.push({code: item.code, count: item.count});\r\n                }\r\n            });\r\n            emojis.emoji_list_1_result.forEach((item: IEmoji) => {\r\n                if (item.explode) {\r\n                    ExplodeListTempLeft.push(item.code);\r\n                }\r\n                if (item.spray) {\r\n                    sprayListTempLeft.push(item.code);\r\n                }\r\n                if (item.count > 0) {\r\n                    maxCountOfEmojiList1 = item.count;\r\n                    uniListTempLeft.push({code: item.code, count: item.count});\r\n                }\r\n            });\r\n            setExplodeListRight(ExplodeListTempRight);\r\n            setSprayListRight(sprayListTempRight);\r\n            setUniListRight(uniListTempRight);\r\n            setExplodeListLeft(ExplodeListTempLeft);\r\n            setSprayListLeft(sprayListTempLeft);\r\n            setUniListLeft(uniListTempLeft);\r\n            setNormCoefficient(Math.max(maxCountOfEmojiList2, maxCountOfEmojiList1) > 2 * config.interval ? (2 * config.get_interval) / Math.max(maxCountOfEmojiList2, maxCountOfEmojiList1) : 1);\r\n        }\r\n    }, [emojis]);\r\n\r\n    useOnClickOutside(rightWoodSellerRef, (event) => {\r\n        if (!checkParentTarget(event, \"emojiButtonRight\")) setOpenRightWoodSeller(false);\r\n    });\r\n\r\n    useOnClickOutside(leftWoodSellerRef, (event) => {\r\n        if (!checkParentTarget(event, \"emojiButtonLeft\")) setOpenLeftWoodSeller(false);\r\n    });\r\n\r\n    useEffect(() => {\r\n        let elementRight = document.getElementById(\"emojiButtonRight\");\r\n        let elementLeft = document.getElementById(\"emojiButtonLeft\");\r\n        if (elementLeft) elementLeft.style.opacity = \"1\";\r\n        if (elementRight) elementRight.style.opacity = \"1\";\r\n        if (!!transparencyTimeoutId) clearTimeout(transparencyTimeoutId);\r\n        let id: any;\r\n        id = setTimeout(() => {\r\n            if (elementLeft) elementLeft.style.opacity = \"0.85\";\r\n            if (elementRight) elementRight.style.opacity = \"0.85\";\r\n        }, activeElementsTime);\r\n        setTransparencyTimeoutId(id);\r\n    }, [transparencyIcon])\r\n\r\n    return (\r\n        <div className={`pl-flex pl-w-full pl-absolute pl-justify-between pl-cursor-pointer pl-bottom-0 animate__animated pl-transition-all pl-duration-500 ${conditions(ConditionName.instagramEmojiAnimation) ? \"animate__fadeInUp pl-opacity-100 pl-pointer-events-auto\" : \"animate__fadeOutDown pl-opacity-0 pl-pointer-events-none\"}`}>\r\n            <div className=\"pl-w-[50px] pl-relative\" id=\"rightWoodSeller\"/>\r\n            <div className=\"pl-w-full pl-relative\" id=\"leftWoodSeller\" dir=\"ltr\"/>\r\n            {\r\n                emojis.emoji_list_1 !== \"\" &&\r\n                <div\r\n                    id=\"emojiButtonLeft\"\r\n                    className={`pl-h-[38px] pl-w-[38px] pl-absolute pl-left-3 pl-bottom-5 pl-rounded-full pl-bg-black pl-bg-opacity-30 pl-border-[1.5px] pl-border-white`}\r\n                    onClick={(e) => {\r\n                        e.preventDefault();\r\n                        setTransparencyIcon(!transparencyIcon);\r\n                        setOpenRightWoodSeller(false);\r\n                        if ((emojis.emoji_list_1.split(\"|\")).length > 1) setOpenLeftWoodSeller(!openLeftWoodSeller);\r\n                        else {\r\n                            leftSideUserEmojiReactionGenerator((emojis.emoji_list_1.split(\"|\"))[0], \"leftWoodSeller\");\r\n                            getLeftUserReaction((emojis.emoji_list_1.split(\"|\"))[0]);\r\n                            setLeftAccumulateEmoji(prev => [...prev, (emojis.emoji_list_1.split(\"|\"))[0]]);\r\n                        }\r\n                    }}>\r\n                    <div className=\"pl-flex pl-items-center pl-justify-center pl-w-full pl-h-full\">\r\n                        <div className=\"pl-flex pl-w-full pl-mx-auto pl-justify-center\">\r\n                            <Emoji\r\n                                name={(emojis.emoji_list_1.split(\"|\"))[0]}\r\n                                className=\"pl-w-[24px] pl-h-[24px]\"/>\r\n                            <div/>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            }\r\n            {\r\n                emojis.emoji_list_1 !== \"\" && <div\r\n                    ref={leftWoodSellerRef}\r\n                    id=\"menuIconLeft\"\r\n                    className={`${!openLeftWoodSeller && \"pl-hidden\"} pl-max-w-[152px] pl-overflow-x-auto no-scrollbar pl-h-[32px] pl-absolute pl-left-3 pl-bottom-[75px] pl-px-3 pl-py-1 pl-rounded-full pl-bg-black pl-bg-opacity-30 pl-border-white pl-border-[1.5px]`}>\r\n                    {\r\n                        openLeftWoodSeller &&\r\n                        <div\r\n                            className={`${(emojis.emoji_list_1.split(\"|\")).length > 1 && \"pl-gap-3 pl-w-max\"} pl-flex md:pl-max-w-[260px] pl-max-w-[220px] pl-h-full pl-items-center pl-justify-center pl-py-1`}>\r\n                            {\r\n                                (emojis.emoji_list_1.split(\"|\")).map((item: string, index: number) => {\r\n                                    return (\r\n                                        <div key={index}\r\n                                             className={`pl-flex pl-w-full pl-justify-center`}\r\n                                             onClick={(e) => {\r\n                                                 e.preventDefault();\r\n                                                 if (closeTimeoutIdLeft) {\r\n                                                     clearTimeout(closeTimeoutIdLeft);\r\n                                                     timeoutHandlerMenu(setOpenLeftWoodSeller, setCloseTimeoutIdLeft);\r\n                                                 }\r\n                                                 setTransparencyIcon(!transparencyIcon);\r\n                                                 setOpenRightWoodSeller(false);\r\n                                                 leftSideUserEmojiReactionGenerator(item, \"leftWoodSeller\");\r\n                                                 getLeftUserReaction(item);\r\n                                                 setLeftAccumulateEmoji(prev => [...prev, item]);\r\n                                             }}>\r\n                                            <Emoji name={item}\r\n                                                   className={`pl-w-[24px] pl-h-[24px]`}/>\r\n                                        </div>\r\n                                    )\r\n                                })\r\n                            }\r\n                        </div>\r\n                    }\r\n                </div>\r\n            }\r\n            {emojis.emoji_list_2 !== \"\" && <div\r\n                id=\"emojiButtonRight\"\r\n                className={`pl-overflow-x-auto no-scrollbar pl-h-[38px] pl-w-[38px] pl-absolute pl-right-3 pl-bottom-5 pl-rounded-full pl-bg-black pl-bg-opacity-30 pl-border-white pl-border-[1.5px]`}\r\n                onClick={(e) => {\r\n                    e.preventDefault();\r\n                    setOpenLeftWoodSeller(false);\r\n                    setTransparencyIcon(!transparencyIcon);\r\n                    if ((emojis.emoji_list_2.split(\"|\")).length > 1) setOpenRightWoodSeller(!openRightWoodSeller);\r\n                    else {\r\n                        getRightUserReaction((emojis.emoji_list_2.split(\"|\"))[0]);\r\n                        setRightAccumulateEmoji(prev => [...prev, (emojis.emoji_list_2.split(\"|\"))[0]]);\r\n                        rightSideUserEmojiReactionGenerator((emojis.emoji_list_2.split(\"|\"))[0], \"rightWoodSeller\");\r\n                    }\r\n                }}\r\n            >\r\n                <div className=\"pl-flex pl-items-center pl-justify-center pl-w-full pl-h-full\">\r\n                    <div className=\"pl-flex pl-w-full pl-mx-auto pl-justify-center\"><Emoji\r\n                        name={(emojis.emoji_list_2.split(\"|\"))[0]}\r\n                        className=\"pl-w-[24px] pl-h-[24px]\"/>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            }\r\n            {\r\n                emojis.emoji_list_2 !== \"\" && <div\r\n                    dir={\"ltr\"}\r\n                    id=\"menuIconRight\"\r\n                    ref={rightWoodSellerRef}\r\n                    className={`${!openRightWoodSeller && \"pl-hidden\"} pl-max-w-[152px] pl-overflow-x-auto no-scrollbar pl-h-[32px] pl-absolute pl-right-3 pl-bottom-[75px] pl-px-3 pl-py-1 pl-rounded-full pl-bg-black pl-bg-opacity-30 pl-border-white pl-border-[1.5px]`}>\r\n                    {\r\n                        openRightWoodSeller &&\r\n                        <div\r\n                            className={`${(emojis.emoji_list_2.split(\"|\")).length > 1 && \"pl-gap-3 pl-w-max\"} pl-flex pl-py-1 md:pl-max-w-[260px] pl-max-w-[220px] pl-h-full pl-items-center pl-justify-center pl-m-0`}>\r\n                            {\r\n                                (emojis.emoji_list_2.split(\"|\")).map((item: string, index: number) => {\r\n                                    return (\r\n                                        <div key={index}\r\n                                             className={`pl-flex pl-w-full pl-justify-center`}\r\n                                             onClick={(e) => {\r\n                                                 e.preventDefault();\r\n                                                 if (closeTimeoutIdRight) {\r\n                                                     clearTimeout(closeTimeoutIdRight);\r\n                                                     timeoutHandlerMenu(setOpenRightWoodSeller, setCloseTimeoutIdRight);\r\n                                                 }\r\n                                                 setTransparencyIcon(!transparencyIcon);\r\n                                                 setOpenLeftWoodSeller(false);\r\n                                                 getRightUserReaction(item);\r\n                                                 setRightAccumulateEmoji(prev => [...prev, item]);\r\n                                                 rightSideUserEmojiReactionGenerator(item, \"rightWoodSeller\");\r\n                                             }}>\r\n                                            <Emoji name={item}\r\n                                                   className={`pl-w-[24px] pl-h-[24px]`}/>\r\n                                        </div>\r\n                                    )\r\n                                })\r\n                            }\r\n                        </div>\r\n                    }\r\n                </div>\r\n            }\r\n            <div>{uniListRight.length > 0 && normCoefficient &&\r\n            <UniEmoji normalizeCoefficient={normCoefficient} direction={\"RIGHT\"} EmojiList={uniListRight}/>}</div>\r\n            <div>{uniListLeft.length > 0 && normCoefficient &&\r\n            <UniEmoji normalizeCoefficient={normCoefficient} direction={\"LEFT\"} EmojiList={uniListLeft}/>}</div>\r\n            {explodeListRight.length > 0 && <ExplodeEmoji direction={\"RIGHT\"} codes={explodeListRight}/>}\r\n            {explodeListLeft.length > 0 && <ExplodeEmoji direction={\"LEFT\"} codes={explodeListLeft}/>}\r\n            {sprayListRight.length > 0 && <SprayEmoji direction={\"RIGHT\"} codes={sprayListRight}/>}\r\n            {sprayListLeft.length > 0 && <SprayEmoji direction={\"LEFT\"} codes={sprayListLeft}/>}\r\n        </div>\r\n    )\r\n}\r\n\r\nexport default InstagramEmoji;","import {useEffect, useState} from \"react\";\r\nimport { useAppSelector } from \"redux-share/hooks\";\r\nimport { IUniEmojiProps } from \"interfaces\";\r\nimport { shallowEqual } from 'react-redux'\r\nimport dynamic from \"next/dynamic\";\r\n\r\nconst AnimatedEmoji = dynamic(() => import(\"./animatedEmoji/AnimatedEmoji\"));\r\n\r\nconst UniEmoji = ({EmojiList, direction , normalizeCoefficient}: IUniEmojiProps) => {\r\n\r\n    const [emojiBucket, setEmojiBucket] = useState<{ code: string, id: number }[]>([]);\r\n    const [shuffledEmojiBucket, setShuffledEmojiBucket] = useState<{ code: string, id: number }[]>([]);\r\n    const [timeoutIds, setTimeoutIds] = useState<any[]>([]);\r\n    const { config } = useAppSelector(({ videoData: { config } }) => ({ config }), shallowEqual);\r\n\r\n    const RetrievalAndShuffle = () => {\r\n        const AllEmoji: { code: string; count: number }[] = [];\r\n        EmojiList.forEach((item) => {\r\n            Array.from((Array(item.count * normalizeCoefficient).keys())).map((emojiNumber, i) => AllEmoji.push(item))\r\n        })\r\n        let ShuffleEmoji = (AllEmoji.map((a) => ({\r\n            sort: Math.random(),\r\n            value: a\r\n        })).sort((a, b) => a.sort - b.sort).map((a) => a.value)).map((item, i) => ({code: item.code, id: i}))\r\n        setShuffledEmojiBucket(ShuffleEmoji);\r\n    }\r\n\r\n    const SetEmojiBucketId = async (index: number, ceilLimit: number) => {\r\n        if (index < ceilLimit) {\r\n            const timeoutId = await setTimeout(() => {\r\n                setEmojiBucket((prev) => [...prev, shuffledEmojiBucket[index]]);\r\n            }, (config.get_interval / shuffledEmojiBucket.length) * 1000 * index);\r\n            await setTimeoutIds((prev) => [...prev, timeoutId]);\r\n            SetEmojiBucketId(index + 1, ceilLimit);\r\n        }\r\n    }\r\n\r\n    useEffect(() => {\r\n        setShuffledEmojiBucket([]);\r\n        setEmojiBucket([]);\r\n        RetrievalAndShuffle();\r\n    }, [EmojiList]);\r\n\r\n    useEffect(() => {\r\n        if (shuffledEmojiBucket.length > 0) SetEmojiBucketId(0, shuffledEmojiBucket.length);\r\n        return () => {\r\n            if (timeoutIds.length > 0) {\r\n                timeoutIds.forEach((id) => clearTimeout(id));\r\n                setTimeoutIds([]);\r\n            }\r\n        }\r\n    }, [shuffledEmojiBucket]);\r\n\r\n    return (\r\n        <>\r\n            {\r\n                emojiBucket.length > 0 ? emojiBucket.map((item, index) => {\r\n                        return (\r\n                            <div key={index}>\r\n                                <AnimatedEmoji direction={direction} emojiCode={item.code}/>\r\n                            </div>\r\n                        )\r\n                    }) :\r\n                    <></>\r\n            }\r\n        </>\r\n    )\r\n}\r\n\r\nexport default UniEmoji;"],"mappings":"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","names":["init_esm_shims","init_esm_shims","useEffect","useState","shallowEqual","dynamic","Fragment","jsx","AnimatedEmoji","UniEmoji","EmojiList","direction","normalizeCoefficient","emojiBucket","setEmojiBucket","useState","shuffledEmojiBucket","setShuffledEmojiBucket","timeoutIds","setTimeoutIds","config","useAppSelector","RetrievalAndShuffle","AllEmoji","item","emojiNumber","i","ShuffleEmoji","b","SetEmojiBucketId","index","ceilLimit","timeoutId","prev","useEffect","id","UniEmoji_default","useEffect","useRef","useState","shallowEqual","dynamic","jsx","jsxs","Emoji","SprayEmoji","ExplodeEmoji","InstagramEmoji","dispatch","useAppDispatch","emojis","emojiList1","emojiList2","config","useAppSelector","activeElements","rightAccumulateEmoji","setRightAccumulateEmoji","useState","leftAccumulateEmoji","setLeftAccumulateEmoji","normCoefficient","setNormCoefficient","uniListRight","setUniListRight","explodeListRight","setExplodeListRight","sprayListRight","setSprayListRight","uniListLeft","setUniListLeft","explodeListLeft","setExplodeListLeft","sprayListLeft","setSprayListLeft","openRightWoodSeller","setOpenRightWoodSeller","openLeftWoodSeller","setOpenLeftWoodSeller","closeTimeoutIdRight","setCloseTimeoutIdRight","closeTimeoutIdLeft","setCloseTimeoutIdLeft","transparencyIcon","setTransparencyIcon","transparencyTimeoutId","setTransparencyTimeoutId","rightWoodSellerRef","useRef","leftWoodSellerRef","rightSideUserEmojiReactionGenerator","sticker","id","commentSticker","CustomEmoji","getEmojiUrl","parent","leftSideUserEmojiReactionGenerator","getRightUserReaction","emojiCode","recentEmojiList","setEmojiList2","getLeftUserReaction","setEmojiList1","timeoutHandlerMenu","setOpenWoodSeller","setCloseTimeoutId","timeoutId","activeElementsTime","useEffect","conditions","maxCountOfEmojiList1","maxCountOfEmojiList2","uniListTempRight","ExplodeListTempRight","sprayListTempRight","uniListTempLeft","ExplodeListTempLeft","sprayListTempLeft","item","useOnClickOutside_default","event","checkParentTarget","elementRight","elementLeft","prev","index","e","UniEmoji_default","InstagramEmoji_default"]}