{"version":3,"file":"static/chunks/499-d838deb993c1bf4f.js","mappings":"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","sources":["webpack://_N_E/./src/api/ending.ts","webpack://_N_E/./src/components/chatStory/ending/EndingCard.tsx","webpack://_N_E/./src/components/chatStory/ending/PlayerReportIframe.tsx"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { USER_HAS_ENDING_DTO } from './fragment/story';\n\nexport const STORIES_HAVING_ENDING = gql`\n query StoriesHavingEnding {\n listStoryByAppHavingEndingOrAchievementV3 {\n list {\n shareKey\n storyId\n isFinished\n hasAchievement\n name\n mainImageFile {\n link\n }\n lastPlay {\n firstName\n lastName\n playedChapters {\n chapterId\n ending {\n endingId\n }\n }\n }\n endingInfo {\n numTotalEnding\n endings {\n ending {\n endingId\n }\n userHasEnding {\n ending {\n storyId\n }\n }\n }\n }\n }\n }\n }\n`;\n\nexport const ENDING_STATS_PER_CHAPTER = gql`\n query EndingStatsPerChapter($chapterId: Int!) {\n endingData: getEndingStatsPerChapter(data: { id: $chapterId }) {\n endingWithStats {\n ending {\n endingId\n name\n displayName\n collectionDescription\n shareKey\n chapterId\n isFinal\n imageFile {\n link\n }\n chapter {\n name\n chapterIndex\n }\n story {\n name\n storyId\n mainImageFile {\n link\n }\n chapters {\n chapterId\n chapterIndex\n name\n }\n characters {\n name\n defaultFirstName\n defaultLastName\n displayName\n }\n lastPlay {\n lastName\n firstName\n currentPlayingChapter {\n playingCharacters {\n characterId\n firstName\n lastName\n profileImageFileId\n character {\n name\n }\n }\n }\n }\n }\n }\n percentage\n }\n endingInfo {\n numTotalEnding\n endings {\n userHasEnding {\n ...UserHasEndingDto\n }\n ending {\n endingId\n name\n collectionDescription\n chapter {\n name\n }\n previewName\n isFinal\n rateLevel\n arrivalRate\n shareKey\n story {\n name\n }\n imageFile {\n link\n }\n previewImageFile {\n link\n }\n }\n }\n }\n }\n }\n ${USER_HAS_ENDING_DTO}\n`;\n\nexport const GET_USER_PLAYER_REPORT = gql`\n query GetUserPlayerReport($id: Int!) {\n getUserPlayerReport(data: { id: $id }) {\n url\n storyId\n storyName\n reportId\n endingId\n }\n }\n`;\n\nexport const GET_ENDING_BY_SHARE_KEY = gql`\n query getEndingByShareKey($data: SingleStringIDInput!) {\n getEndingByShareKey(data: $data) {\n storyId\n storyName\n chapterName\n chapterIndex\n endingImageLink\n endingName\n percentage\n }\n }\n`;\n\nexport const GET_FINAL_ENDING_BY_SHARE_KEY = gql`\n query getFinalEndingByShareKey($id: String!) {\n getEndingByShareKey(data: { id: $id }) {\n storyId\n storyName\n userName\n endingImageLink\n endingName\n endingDescription\n endingCreatedAt\n endingArrivalRate\n endingRateLevel\n endingCardList {\n type\n arrivalRate\n rateLevel\n choiceCount\n endingCollectRate\n characterImageLink\n }\n }\n }\n`;\n\nexport const LIST_HAVING_ENDING = gql`\n query ListHavingEnding {\n listStoryByAppHavingEnding {\n list {\n storyId\n name\n lastPlay {\n userId\n firstName\n lastName\n }\n endingInfo {\n endings {\n ending {\n name\n endingId\n storyId\n imageFile {\n link\n }\n }\n userHasEnding {\n ending {\n endingId\n }\n }\n }\n }\n }\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport useTranslation from 'next-translate/useTranslation';\nimport { useRouter } from 'next/router';\nimport { useAppDispatch } from '@store/hooks';\nimport { alertMessage } from '@slices/alertSlice';\nimport { useLazyQuery } from '@apollo/client';\nimport { GET_USER_PLAYER_REPORT } from '@api/ending';\nimport {\n ReachedEnding,\n EndingRateRangeLevelType,\n Ending,\n UserHasEnding,\n} from '@customTypes/story';\nimport { collectibleEnding } from '@customTypes/chapter';\nimport { getRarityText, getStringToDate } from '@common/utils';\nimport theme from '@styles/theme';\nimport {\n PyramidIcon4,\n PyramidIcon3,\n PyramidIcon1,\n PyramidIcon2,\n ClosePopupBtn,\n PyramidStoryGameIcon1,\n PyramidStoryGameIcon4,\n PyramidStoryGameIcon2,\n PyramidStoryGameIcon3,\n} from 'public/assets';\nimport { css } from '@emotion/react';\nimport { MBTI19_URL } from '@common/values';\n\nimport { Button, SPImage, SPLoading } from '@components/commons';\nimport PlayerReportIframe from './PlayerReportIframe';\n\nexport interface IEndingCard {\n ending: ReachedEnding | collectibleEnding;\n onClose?: () => void;\n isShowButton?: boolean;\n isShowReport?: boolean;\n isPopup?: boolean;\n}\n\nexport const getRangeLevelIcon = ({\n rateLevel,\n isStoryGame,\n}: {\n rateLevel?: EndingRateRangeLevelType;\n isStoryGame?: boolean;\n}) => {\n switch (rateLevel) {\n case 'Normal':\n return isStoryGame ? (\n \n ) : (\n \n );\n case 'Rarity':\n return isStoryGame ? (\n \n ) : (\n \n );\n case 'VeryRarity':\n return isStoryGame ? (\n \n ) : (\n \n );\n case 'Minority':\n return isStoryGame ? (\n \n ) : (\n \n );\n default:\n return isStoryGame ? (\n \n ) : (\n \n );\n }\n};\n\nconst EndingCard = ({\n ending,\n onClose,\n isShowButton = false,\n isShowReport = false,\n isPopup = false,\n}: IEndingCard) => {\n const { t } = useTranslation();\n const router = useRouter();\n const dispatch = useAppDispatch();\n const [endingInfo, setEndingInfo] = useState(ending?.ending);\n const [collectedEnding, setCollectedEnding] = useState<\n UserHasEnding | undefined\n >(undefined);\n const [reportUrl, setReportUrl] = useState();\n\n const [getPlayerReport, { loading: playerReportLoading }] = useLazyQuery<{\n getUserPlayerReport: {\n url?: string;\n storyId: number;\n storyName: string;\n reportId: number;\n endingId: number;\n };\n }>(GET_USER_PLAYER_REPORT, {\n onCompleted: (res) => {\n const getUserPlayerReport = res?.getUserPlayerReport;\n getUserPlayerReport?.url &&\n setReportUrl(getUserPlayerReport?.url + '?excludeExtra=0');\n },\n onError: (error) => {\n dispatch(\n alertMessage({\n message: t('common_popup_description_error_occurred'),\n type: 'warning',\n }),\n );\n },\n fetchPolicy: 'cache-and-network',\n });\n\n useEffect(() => {\n isShowReport && onShowReport();\n }, [isShowReport]);\n\n useEffect(() => {\n const collectedEnding =\n 'collectedEnding' in ending\n ? ending?.collectedEnding\n : 'userHasEnding' in ending\n ? ending?.userHasEnding\n : undefined;\n setCollectedEnding(collectedEnding);\n setEndingInfo(ending?.ending);\n }, [ending]);\n\n useEffect(() => {\n if (!isPopup) return;\n document.body.style.overflow = 'hidden';\n return () => {\n document.body.style.overflow = '';\n };\n }, []);\n\n const onShowReport = () => {\n collectedEnding?.uheId &&\n getPlayerReport({\n variables: { id: collectedEnding?.uheId },\n });\n };\n\n const onClosePopup = () => {\n reportUrl ? setReportUrl(undefined) : onClose?.();\n };\n\n return (\n <>\n \n {endingInfo &&\n (reportUrl ? (\n setReportUrl(undefined)}\n />\n ) : (\n \n {isPopup && (\n
\n
\n {collectedEnding?.hasPlayerReport && (\n <>\n
\n {t('chapterending_screen_button_show_player_report')}\n {collectedEnding?.hasNewPlayerReport && (\n
N
\n )}\n
\n \n )}\n
\n
\n \n
\n
\n )}\n
\n {endingInfo?.imageFile?.link && (\n \n )}\n
\n
\n
{endingInfo.story?.name}
\n
\n {collectedEnding?.customName ?? endingInfo.name}\n
\n
\n {collectedEnding?.customDescription ??\n endingInfo.collectionDescription}\n
\n {endingInfo?.arrivalRate && endingInfo.rateLevel && (\n
\n
\n {getRangeLevelIcon({\n rateLevel: endingInfo.rateLevel,\n })}\n
\n {endingInfo?.arrivalRate ?? '-'}%\n
\n
\n
\n {getRarityText(t, endingInfo?.rateLevel)}\n
\n
\n
\n {getStringToDate(collectedEnding?.updatedAt)}\n
\n
\n )}\n
\n {isShowButton && (\n router.push(MBTI19_URL)}\n />\n )}\n \n ))}\n {playerReportLoading && }\n \n \n );\n};\n\nconst buttonStyle = css`\n margin-top: 1rem;\n width: 100%;\n height: 3rem;\n font-weight: 700;\n font-size: 1rem;\n color: ${theme.colors.primary500};\n border: 1px solid ${theme.colors.primary300};\n background-color: ${theme.colors.white};\n border-radius: 0.5rem;\n cursor: pointer;\n`;\n\nconst popupContainer = ({ isPopup }: { isPopup: boolean }) => css`\n position: ${isPopup ? 'absolute' : 'relative'};\n width: 100%;\n max-width: ${isPopup ? '50rem' : '100%'};\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .container {\n position: relative;\n padding: ${isPopup ? '0 1.25rem' : '0'};\n width: 100%;\n }\n\n .container.fixed {\n width: 100%;\n max-width: ${theme.maxWidth};\n }\n\n .close {\n position: absolute;\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n top: -3.5rem;\n right: 0;\n z-index: 1;\n padding: 0 1.25rem;\n\n .report-container {\n cursor: pointer;\n }\n\n .report-close {\n cursor: pointer;\n }\n }\n\n .content {\n width: 100%;\n background-color: ${theme.colors.white};\n border-radius: 0 0 0.75rem 0.75rem;\n padding: 1.5rem;\n background-color: ${theme.colors.gray900};\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n .image {\n border-radius: 0.75rem 0.75rem 0 0;\n }\n\n .image-container {\n width: 100%;\n height: ${isPopup ? '20rem' : '17.0625rem'};\n background-color: ${theme.colors.gray100};\n position: relative;\n border-radius: 0.75rem 0.75rem 0 0;\n object-fit: cover\n ${isPopup &&\n `\n @media screen and (max-width: ${theme.devices.mobile}) {\n height: 9rem;\n }\n `};\n }\n\n .title {\n font-family: Apple SD Gothic Neo;\n font-style: normal;\n font-weight: normal;\n font-size: 0.875rem;\n line-height: 1.25rem;\n letter-spacing: -0.3px;\n color: ${theme.colors.primary300};\n }\n\n .ending-title {\n font-family: Apple SD Gothic Neo;\n font-style: normal;\n font-weight: bold;\n font-size: 1.25rem;\n line-height: 1.75rem;\n letter-spacing: -0.3px;\n color: ${theme.colors.white};\n }\n\n .content-text {\n max-height: 340px;\n font-family: Apple SD Gothic Neo;\n font-style: normal;\n font-weight: normal;\n font-size: 0.875rem;\n line-height: 1.25rem;\n letter-spacing: -0.3px;\n color: ${theme.colors.gray500};\n overflow-y: scroll;\n\n @media screen and (max-width: ${theme.devices.mobile}) {\n max-height: 12.5rem;\n }\n }\n\n .content-text::-webkit-scrollbar {\n width: 0.625rem; /* 스크롤바의 너비 */\n }\n\n .rate {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .rate-content {\n display: flex;\n align-items: center;\n }\n\n .rate-text {\n margin-left: 0.25rem;\n font-family: Apple SD Gothic Neo;\n font-style: normal;\n font-weight: bold;\n font-size: 0.875rem;\n line-height: 1.25rem;\n letter-spacing: -0.3px;\n color: ${theme.colors.emerald500};\n }\n\n .point {\n width: 0.25rem;\n height: 0.25rem;\n border-radius: 0.125rem;\n background-color: ${theme.colors.gray700};\n margin: 0 0.5rem;\n }\n\n .rate-type {\n font-family: Apple SD Gothic Neo;\n font-style: normal;\n font-weight: normal;\n font-size: 0.875rem;\n line-height: 1.25rem;\n letter-spacing: -0.3px;\n color: ${theme.colors.white};\n }\n\n .date {\n font-family: Apple SD Gothic Neo;\n font-style: normal;\n font-weight: normal;\n font-size: 0.875rem;\n line-height: 1.25rem;\n text-align: right;\n letter-spacing: -0.3px;\n color: ${theme.colors.gray500};\n }\n\n .report-container {\n display: flex;\n z-index: 1;\n }\n\n .report {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.5rem;\n background-color: ${theme.colors.gray900};\n color: ${theme.colors.white};\n font-weight: 400;\n font-size: 1rem;\n border-radius: 0.25rem;\n cursor: pointer;\n }\n\n .new-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0.25rem 4.5px;\n border-radius: 3px;\n font-weight: 700;\n font-size: 0.8rem;\n line-height: 0.75rem;\n margin-left: 0.375rem;\n color: ${theme.colors.white};\n background-color: ${theme.colors.emerald500};\n }\n`;\n\nexport default EndingCard;\n","import React, { useEffect } from 'react';\nimport { css } from '@emotion/react';\nimport theme from '@styles/theme';\nimport { NavCloseBtn } from 'public/assets';\nimport { touchCtaEndingReport } from '@lib/eventManager';\nimport { useAppSelector } from '@/store/hooks';\n\ninterface IPlayerReportIframe {\n src: string;\n onClose: () => void;\n}\n\nconst PlayerReportIframe = ({ src, onClose }: IPlayerReportIframe) => {\n const chapterData = useAppSelector((state) => state.chapter.playChapterInfo);\n\n useEffect(() => {\n window.addEventListener('message', handlePlayerReportMessage);\n\n return () => {\n window.removeEventListener('message', handlePlayerReportMessage);\n };\n }, []);\n\n const handlePlayerReportMessage = (event: MessageEvent) => {\n if (event.data.action === 'playerReportButton') {\n window.location.href = event.data.link;\n if (event.data.event === 'ctaButtonClick') {\n touchCtaEndingReport({\n storyId: chapterData?.playChapter.storyId,\n storyName: chapterData?.playChapter.story.name,\n });\n }\n }\n };\n\n return (\n <>\n
\n
\n \n
\n \n
\n \n );\n};\n\nconst container = css`\n height: 100vh;\n width: 100%;\n z-index: 2;\n overflow: hidden;\n position: fixed;\n top: 0;\n\n .report-web {\n height: 100vh;\n width: 100%;\n }\n\n .report-close {\n position: absolute;\n right: 0.6rem;\n top: 0.6rem;\n cursor: pointer;\n }\n`;\n\nexport default PlayerReportIframe;\n"],"names":["ENDING_STATS_PER_CHAPTER","gql","USER_HAS_ENDING_DTO","GET_USER_PLAYER_REPORT","getRangeLevelIcon","rateLevel","isStoryGame","width","height","buttonStyle","css","theme","popupContainer","isPopup","ending","onClose","isShowButton","isShowReport","t","useTranslation","router","useRouter","dispatch","useAppDispatch","useState","endingInfo","setEndingInfo","undefined","collectedEnding","setCollectedEnding","reportUrl","setReportUrl","useLazyQuery","onCompleted","res","getUserPlayerReport","url","onError","error","alertMessage","message","type","fetchPolicy","getPlayerReport","playerReportLoading","loading","useEffect","onShowReport","userHasEnding","document","body","style","overflow","uheId","variables","id","src","className","hasPlayerReport","onClick","hasNewPlayerReport","imageFile","link","layout","objectFit","alt","story","name","customName","customDescription","collectionDescription","arrivalRate","getRarityText","getStringToDate","updatedAt","title","customCSS","isFill","push","MBTI19_URL","container","chapterData","useAppSelector","state","chapter","playChapterInfo","window","addEventListener","handlePlayerReportMessage","removeEventListener","event","data","action","location","href","touchCtaEndingReport","storyId","playChapter","storyName","fill","sandbox"],"sourceRoot":""}