{"version":3,"file":"static/chunks/5894-13269a1b0196e7d0.js","mappings":"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","sources":["webpack://_N_E/./src/app/(allowed)/community/_components/DownloadAppBanner.tsx","webpack://_N_E/./src/app/_components/NonMemberContentsBlock.tsx","webpack://_N_E/./src/components/molecule/BookmarkButton.tsx","webpack://_N_E/../common/__generated__/icon/figma/mail-send.svg","webpack://_N_E/../common/__generated__/icon/components/SvgMailSend.tsx","webpack://_N_E/./src/components/molecule/CommentField.tsx","webpack://_N_E/./src/components/template/CommentListWithField.tsx","webpack://_N_E/./src/hooks/useBookmark.ts","webpack://_N_E/./src/hooks/useToastPoint.tsx","webpack://_N_E/./src/query-factory/point.ts","webpack://_N_E/../../node_modules/es-toolkit/dist/predicate/isPrimitive.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/predicate/isTypedArray.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/object/cloneDeepWith.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/object/cloneDeep.mjs"],"sourcesContent":["'use client';\n\nimport { Button, Portal } from '@common/components';\nimport { SvgDelete } from '@common/icon';\nimport dayjs from 'dayjs';\nimport Image from 'next/image';\nimport { useEffect, useState } from 'react';\nimport { useShallow } from 'zustand/react/shallow';\n\nimport { DEFAULT_META, SELECTOR } from '@/constants';\nimport { useDeviceInfoStore } from '@/stores/DeviceStore';\n\nexport const DownloadAppBanner = () => {\n const [webviewType, osType] = useDeviceInfoStore(\n useShallow((state) => [state.webviewType, state.osType]),\n );\n\n const [isVisible, setIsVisible] = useState(false);\n\n const isMobileWeb =\n !webviewType && osType && ['ios', 'android'].includes(osType);\n\n useEffect(() => {\n if (!isMobileWeb) return;\n\n const lastClosed = localStorage.getItem('bannerLastClosed');\n const now = dayjs();\n\n if (!lastClosed || !dayjs(lastClosed).isSame(now, 'day')) {\n setIsVisible(true);\n }\n }, [isMobileWeb]);\n\n const handleClose = () => {\n setIsVisible(false);\n localStorage.setItem('bannerLastClosed', dayjs().toISOString());\n };\n\n if (!isVisible) return null;\n\n return (\n document.getElementById(SELECTOR.PAGE_NAV_WRAPPER)}>\n \n \n );\n};\n","'use client';\n\nimport { Button } from '@common/components';\nimport { cn } from '@common/utils';\nimport { useQuery } from '@tanstack/react-query';\nimport { motion } from 'framer-motion';\nimport Image from 'next/image';\nimport { usePathname } from 'next/navigation';\nimport { useEffect } from 'react';\nimport CountUp from 'react-countup';\n\nimport { UnauthQueryOptions } from '@/api/v2';\nimport { CustomLink } from '@/components/atom/CustomLink';\nimport { BottomNavPortal } from '@/components/client';\nimport { ROUTES } from '@/constants';\nimport { useCustomRouter } from '@/hooks/useCustomRouter';\nimport { useAuthStore } from '@/stores/AuthStore';\n\ninterface NonMemberContentsBlockProps {\n contentType: 'policy' | 'info' | 'talk';\n isTalkDetail?: boolean;\n}\n\nconst CONTENT_CONFIG = {\n policy: {\n title: '지금 보는 정책이 궁금하다면?',\n descriptionPrefix: '로그인 후 정책 확인하고,',\n descriptionSuffix: '받아보세요 !',\n imageSrc: 'policyQuestion',\n imageAlt: '정책',\n },\n info: {\n title: '지금 보는 소식이 궁금하다면?',\n descriptionPrefix: '로그인 후 소식 확인하고,',\n descriptionSuffix: '받아보세요 !',\n imageSrc: 'infoQuestion',\n imageAlt: '소식',\n },\n talk: {\n title: '다른 사람들의 이야기가 궁금하다면?',\n descriptionPrefix: '로그인 후 최신 피드를 확인하고,',\n descriptionSuffix: '받아보세요 !',\n imageSrc: 'talkQuestion',\n imageAlt: '커뮤니티 수다',\n },\n};\n\nconst fadeInUpVariants = {\n hidden: { opacity: 0, y: 15 },\n visible: {\n opacity: 1,\n y: 0,\n transition: {\n duration: 0.5,\n ease: 'easeOut',\n },\n },\n};\n\nconst imageVariants = {\n initial: { scale: 0.95, opacity: 0.9 },\n hover: {\n scale: 1.05,\n opacity: 1,\n transition: {\n type: 'spring',\n stiffness: 300,\n damping: 15,\n },\n },\n};\n\nexport const NonMemberContentsBlock = ({\n contentType,\n isTalkDetail = false,\n}: NonMemberContentsBlockProps) => {\n const isLogin = useAuthStore((state) => state.isLogin);\n const pathname = usePathname();\n const router = useCustomRouter();\n const { data: pointJoinData } = useQuery({\n ...UnauthQueryOptions['get:/wello/v2/allows/point/info']({\n query: {\n activity_detail_type: 'JOIN',\n },\n }),\n select: ({ context }) => context,\n });\n\n const { data: pointMemberFilterData } = useQuery({\n ...UnauthQueryOptions['get:/wello/v2/allows/point/info']({\n query: {\n activity_detail_type: 'MEMBER_FILTER',\n },\n }),\n select: ({ context }) => context,\n });\n\n const rewardPoint =\n (pointJoinData?.point ?? 0) + (pointMemberFilterData?.point ?? 0);\n\n useEffect(() => {\n if (isTalkDetail && isLogin === false) {\n router.replace(\n ROUTES.LOGIN.withSearchParams({\n searchParams: { redirect: pathname ?? '' },\n }),\n );\n }\n }, [isTalkDetail, pathname, router, isLogin]);\n\n if (isLogin) return <>;\n\n const contentItem = CONTENT_CONFIG[contentType];\n\n return (\n \n \n \n
\n \n \n \n\n \n {contentItem.title}\n \n\n \n {contentItem.descriptionPrefix}\n
\n 바로 출금 가능한{' '}\n \n P\n {' '}\n {contentItem.descriptionSuffix}\n \n
\n\n \n \n \n \n
\n );\n};\n","'use client';\n\nimport { SvgBookmarkFill } from '@common/icon';\nimport { cn } from '@common/utils';\nimport { useState } from 'react';\nimport CountUp from 'react-countup';\nimport { useInView } from 'react-intersection-observer';\n\ninterface BookmarkButtonProps {\n bookmarkCount?: number;\n isBookmarked?: boolean;\n onClick?: (isBookmarked: boolean) => void;\n}\n\nexport const BookmarkButton = ({\n bookmarkCount = 0,\n isBookmarked = false,\n onClick,\n}: BookmarkButtonProps) => {\n const [isDisplayed, setIsDisplayed] = useState(false);\n\n const inView = useInView({\n onChange: (inView) => {\n if (inView) {\n setIsDisplayed(true);\n }\n },\n });\n\n return (\n {\n e.preventDefault();\n onClick?.(isBookmarked);\n }}\n >\n \n {isDisplayed ? (\n \n ) : null}\n \n );\n};\n","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailSend = function SvgMailSend(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1em\",\n height: \"1em\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#mail-send_svg__a)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M22.092.795a2 2 0 0 0-.288.076c-.393.14-20.294 7.802-20.43 7.865-.17.079-.362.248-.446.393a.93.93 0 0 0-.132.564c.02.399.225.69.62.882.112.054 2.008.917 4.212 1.917s4.02 1.831 4.034 1.846c.015.014.845 1.83 1.846 4.034 1 2.204 1.863 4.1 1.918 4.21.126.26.29.432.51.537.154.072.18.077.428.077.251 0 .272-.004.422-.08q.314-.156.466-.47c.078-.16 7.735-20.045 7.889-20.486a.85.85 0 0 0 .062-.42.8.8 0 0 0-.085-.379 1.01 1.01 0 0 0-1.026-.566m-9.654 5.824A1322 1322 0 0 0 4.416 9.72c0 .009 1.302.607 2.894 1.33l2.894 1.316 2.176-2.171c2.033-2.029 2.186-2.176 2.326-2.237.408-.178.847-.105 1.143.192.297.296.37.735.192 1.143-.061.14-.208.293-2.237 2.326l-2.171 2.177 1.315 2.893a186 186 0 0 0 1.33 2.894c.01 0 1.392-3.577 3.073-7.95 1.682-4.372 3.072-7.985 3.09-8.028a.3.3 0 0 0 .025-.076c-.003 0-3.616 1.39-8.028 3.089\",\n clipRule: \"evenodd\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"mail-send_svg__a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h24v24H0z\"\n })))));\n};\nexport default SvgMailSend;","import { createSvgComponent } from \"../../../icon/createSvgComponent\";\nimport MailSend from \"../figma/mail-send.svg\";\nexport default createSvgComponent(MailSend);","'use client';\n\nimport { type Editor, Spinner } from '@common/components';\nimport { Button, CustomEditor } from '@common/components';\nimport { SvgMailSend } from '@common/icon';\nimport { cn,CustomError } from '@common/utils';\nimport type { SaveWelloCommentResponse } from '@generatedapi/auth';\nimport { useMutation, useSuspenseQuery } from '@tanstack/react-query';\nimport { Fragment, Suspense, useEffect, useRef, useState } from 'react';\n\nimport type { COMMENT_TYPE } from '@/api';\nimport { AuthApi, AuthQueryKey, UnauthQueryOptions } from '@/api/v2';\nimport { ROUTES } from '@/constants';\nimport { useCustomRouter } from '@/hooks/useCustomRouter';\nimport { useAuthStore } from '@/stores/AuthStore';\n\nimport { BottomNavPortal } from '../client';\n\ninterface CommentFieldContentProps {\n initOnFocus?: boolean;\n replyTo?: string;\n contentId: number;\n commentType: COMMENT_TYPE;\n rootCommentId?: number;\n parentCommentId?: number;\n isLogin: boolean;\n onSuccess?: (response?: SaveWelloCommentResponse) => void;\n topDivider?: boolean;\n className?: string;\n}\n\nconst CommentFieldContent = ({\n initOnFocus,\n replyTo,\n contentId,\n commentType,\n rootCommentId,\n parentCommentId,\n isLogin,\n onSuccess,\n topDivider = true,\n className,\n}: CommentFieldContentProps) => {\n const [isFocused, setIsFocused] = useState(false);\n\n const startText = replyTo ? `@${replyTo}` : '';\n\n const protectedPrefix = startText\n ? `

${startText} `\n : null;\n\n const minHtmlLength = replyTo ? protectedPrefix!.length : 0;\n\n const tempContentForProtectedPrefix = useRef('');\n const editorRef = useRef(null);\n\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(false);\n\n const handleSubmitDisabled = (editor: Editor) => {\n let text = editor.getText({\n blockSeparator: '\\n',\n });\n\n if (startText && text.startsWith(startText)) {\n text = text.slice(startText.length + 1);\n }\n\n const isDisabled = !text.length;\n\n setIsSubmitDisabled(isDisabled);\n };\n\n const initContent = (editor: Editor) => {\n if (protectedPrefix) {\n tempContentForProtectedPrefix.current = protectedPrefix;\n\n editor.commands.setContent(protectedPrefix);\n } else {\n editor.commands.setContent('');\n }\n };\n\n useEffect(() => {\n if (!protectedPrefix || !editorRef.current) return;\n editorRef.current.commands.setContent(protectedPrefix);\n }, [protectedPrefix]);\n\n const postComment = useMutation({\n mutationFn: (contents: string) =>\n AuthApi['post:/wello/v2/auth/wello-comment']({\n body: {\n comment_type_cd: commentType,\n content_id: contentId,\n contents,\n parent_wello_comment_id: parentCommentId,\n root_wello_comment_id: rootCommentId,\n },\n }),\n meta: {\n reset: [\n AuthQueryKey['get:/wello/v2/auth/wello-comment'](),\n AuthQueryKey['get:/wello/v2/auth/policy/feedback/{policy_id}'](),\n AuthQueryKey[\n 'get:/wello/v2/auth/contents/feedback/{best_contents_id}'\n ](),\n AuthQueryKey['get:/wello/v2/auth/wello-comment/my'](),\n AuthQueryKey['get:/wello/v2/auth/community/my'](),\n AuthQueryKey[\n 'get:/wello/v2/auth/hometown-news/feedback/{hometown_news_id}'\n ](),\n AuthQueryKey[\n 'get:/wello/v2/auth/community/free-talk/feedback/{community_id_idx}'\n ](),\n AuthQueryKey[\n 'get:/wello/v2/auth/community/policy-talk/feedback/{community_id_idx}'\n ](),\n AuthQueryKey[\n 'get:/wello/v2/auth/community/wello-news/feedback/{community_id_idx}'\n ](),\n ],\n },\n\n onSuccess: async ({ data }) => {\n const context = data?.context;\n\n const { current: editor } = editorRef;\n\n if (!editor) throw new CustomError();\n\n initContent(editor);\n\n handleSubmitDisabled(editor);\n\n onSuccess?.(context);\n\n setTimeout(() => {\n editor.commands.focus();\n }, 100);\n },\n });\n\n const router = useCustomRouter();\n\n return (\n \n setIsFocused(false)}\n onCreate={({ editor }) => {\n initContent(editor);\n\n if (initOnFocus) {\n editor.commands.focus();\n }\n\n editorRef.current = editor;\n\n handleSubmitDisabled(editor);\n }}\n onFocus={() => {\n if (isLogin) {\n setIsFocused(true);\n } else {\n const url = new URL(window.location.href);\n\n router.push(\n ROUTES.LOGIN.withSearchParams({\n searchParams: {\n redirect: url.pathname + url.search,\n },\n }),\n );\n }\n }}\n onUpdate={({ editor }) => {\n if (protectedPrefix) {\n const content = editor.getHTML();\n\n if (!content.startsWith(protectedPrefix)) {\n if (content.length <= minHtmlLength) {\n editor.commands.setContent(protectedPrefix);\n } else {\n return editor.commands.setContent(\n tempContentForProtectedPrefix.current,\n );\n }\n }\n\n tempContentForProtectedPrefix.current = content;\n }\n\n handleSubmitDisabled(editor);\n }}\n >\n {\n e.preventDefault();\n\n const { current: editor } = editorRef;\n\n if (!editor) throw new CustomError();\n\n let text = editor.getText({\n blockSeparator: '\\n',\n });\n\n if (startText) {\n text = text.replace(startText, '');\n }\n\n text = text.trim();\n\n if (!text.length) throw new CustomError();\n\n postComment.mutate(text);\n }}\n >\n \n {isSubmitDisabled ? null : (\n \n {postComment.isPending ? (\n \n ) : (\n \n )}\n \n )}\n \n \n \n );\n};\n\nconst ReplyCommentField = (\n props: Omit & {\n parentCommentId: number;\n },\n) => {\n const { data: nickname } = useSuspenseQuery({\n ...UnauthQueryOptions[\n 'get:/wello/v2/allows/wello-comment/{welloCommentId}'\n ]({\n path: {\n welloCommentId: props.parentCommentId,\n },\n }),\n select: (data) => data.context?.nick_name,\n });\n\n return ;\n};\n\nconst FixedArea = () =>

;\n\ninterface CommentFieldProps\n extends Omit {\n withPortal?: boolean;\n}\n\nexport const CommentField = ({\n parentCommentId,\n withPortal = true,\n ...restProps\n}: CommentFieldProps) => {\n const isLogin = useAuthStore((state) => state.isLogin);\n\n const Container = withPortal ? BottomNavPortal : Fragment;\n\n return (\n \n {isLogin !== undefined ? (\n }>\n {parentCommentId ? (\n \n ) : (\n \n )}\n \n ) : (\n \n )}\n \n );\n};\n","'use client';\n\nimport { CustomError, isEnumValue } from '@common/utils';\nimport { useSearchParams } from 'next/navigation';\nimport { useState } from 'react';\nimport { scroller } from 'react-scroll';\n\nimport { COMMENT_SORT_TYPE } from '@/api';\nimport { ROUTES, SEARCH_PARAMS, SELECTOR } from '@/constants';\nimport { useCustomRouter } from '@/hooks/useCustomRouter';\nimport { useToastPoint } from '@/hooks/useToastPoint';\nimport { useAuthStore } from '@/stores/AuthStore';\n\nimport { CommentField } from '../molecule/CommentField';\nimport type { CommentListProps } from '../organism/CommentList';\nimport { CommentList } from '../organism/CommentList';\n\nexport interface CommentListWithFieldProps\n extends Pick<\n CommentListProps,\n 'commentType' | 'contentId' | 'initialData' | 'rootCommentId' | 'className'\n > {\n initOnFocus?: boolean;\n policyTalkContentIdx?: string;\n hasCommentField?: boolean;\n commentFieldTopDivider?: boolean;\n commentFieldClassName?: string;\n withPortal?: boolean;\n}\n\nexport const CommentListWithField = ({\n initOnFocus,\n commentType,\n contentId,\n initialData,\n rootCommentId,\n className,\n policyTalkContentIdx,\n hasCommentField = true,\n commentFieldTopDivider,\n commentFieldClassName,\n withPortal,\n}: CommentListWithFieldProps) => {\n const searchParams = useSearchParams();\n\n const sortType =\n searchParams?.get(SEARCH_PARAMS.SORT_TYPE) || COMMENT_SORT_TYPE.LATEST;\n\n const parentCommentId = ((params) => {\n if (!params) return undefined;\n\n const parentCommentId = Number(params);\n\n if (Number.isNaN(parentCommentId)) return undefined;\n\n return parentCommentId;\n })(searchParams?.get(SEARCH_PARAMS.PARENT_COMMENT_ID));\n\n if (!isEnumValue(COMMENT_SORT_TYPE, sortType))\n throw new CustomError({\n return_message: '잘못된 sortType입니다.',\n });\n\n const isLogin = useAuthStore((state) => state.isLogin);\n\n const router = useCustomRouter();\n\n const [placeholder, setPlaceholder] = useState(initialData);\n\n const isCommentPage = !!parentCommentId;\n\n const { toastPoint } = useToastPoint();\n\n return (\n <>\n {\n if (isRoot && policyTalkContentIdx) {\n router.push(\n ROUTES.POLICY_TALK_COMMENT_EDIT.pathname({\n commentId,\n contentIdx: policyTalkContentIdx,\n }),\n );\n } else {\n router.push(\n ROUTES.COMMENT_EDIT.withSearchParams({\n dynamicPath: { commentId },\n }),\n );\n }\n }}\n onClickReplyButton={(commentId, parentCommentId) => {\n const targetRoute = ROUTES.COMMENT_LIST.withSearchParams({\n dynamicPath: { commentType, contentId, commentId },\n searchParams: {\n sortType,\n parentCommentId,\n },\n });\n\n if (!isLogin) {\n return router.push(\n ROUTES.LOGIN.withSearchParams({\n searchParams: {\n redirect: targetRoute,\n },\n }),\n );\n }\n\n return isCommentPage\n ? router.replace(targetRoute)\n : router.push(targetRoute);\n }}\n />\n {hasCommentField && isLogin ? (\n {\n if (!res) throw new CustomError();\n\n if (sortType !== COMMENT_SORT_TYPE.LATEST) {\n const url = new URL(window.location.href);\n\n url.searchParams.set(\n SEARCH_PARAMS.SORT_TYPE,\n COMMENT_SORT_TYPE.LATEST,\n );\n\n history.replaceState(null, '', url.search);\n }\n\n scroller.scrollTo(SELECTOR.COMMENT_LIST_TOP, {\n duration: 300,\n smooth: 'easeOutQuad',\n containerId: SELECTOR.MAIN,\n offset: -100,\n });\n\n const point = res?.point_activity?.result_yn\n ? res.point_activity.add_points\n : null;\n\n if (point) {\n toastPoint(point);\n }\n\n setTimeout(() => {\n scroller.scrollTo(\n SELECTOR.COMMENT_PREFIX + res.wello_comment_id,\n {\n duration: 300,\n smooth: 'easeOutQuad',\n containerId: SELECTOR.MAIN,\n offset: -100,\n },\n );\n }, 300);\n }}\n />\n ) : null}\n \n );\n};\n","'use client';\n\nimport { isSameEndpointQuery } from '@common/api/isSameEndpointQuery';\nimport { hasObjectKey } from '@common/utils';\nimport { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { cloneDeep, debounce } from 'es-toolkit';\nimport { useMemo } from 'react';\n\nimport { AuthApi, AuthQueryKey } from '@/api/v2';\nimport { ROUTES } from '@/constants';\nimport { MESSAGE_KEYWORD, useHandleApp } from '@/modules/wello-app';\nimport { useAuthStore } from '@/stores/AuthStore';\n\nimport { useCustomRouter } from './useCustomRouter';\n\ninterface BookmarkParams {\n /**\n * 쿼리키 조회용\n */\n idx?: string;\n contentId: number;\n isBookmarked: boolean;\n bookmarkType: string;\n}\n\n// 북마크 가능한 항목의 인터페이스\ninterface BookmarkableItem {\n id: number;\n wishlist_yn: boolean;\n [key: string]: unknown;\n}\n\n// 컨텐츠 배열을 포함하는 응답 데이터 인터페이스\ninterface ContentsResponse {\n context: {\n contents: BookmarkableItem[];\n [key: string]: unknown;\n };\n [key: string]: unknown;\n}\n\nconst OPTIMISTIC_QUERY_KEYS = [\n AuthQueryKey['get:/wello/v2/auth/member/neighbor/policy'],\n AuthQueryKey['get:/wello/v2/auth/member/recommend/policy'],\n AuthQueryKey['get:/wello/v2/auth/policy-apply/history'],\n AuthQueryKey['get:/wello/v2/auth/community/wello-news'],\n AuthQueryKey['get:/wello/v2/auth/member/recent/policy'],\n AuthQueryKey['get:/wello/v2/auth/community/policy-talk'],\n AuthQueryKey['get:/wello/v2/auth/hometown-news'],\n AuthQueryKey['get:/wello/v2/auth/member/interest/policy'],\n AuthQueryKey['get:/wello/v2/auth/policy/policy/{meta_policy_id_idx}/related'],\n AuthQueryKey['get:/wello/v2/auth/member/wishlist/voucher-provider'],\n AuthQueryKey['get:/wello/v2/auth/contents/pick/{wello_pick_id}'],\n AuthQueryKey['get:/wello/v2/auth/policy'],\n AuthQueryKey['get:/wello/v2/auth/member/wishlist/policy'],\n AuthQueryKey['get:/wello/v2/auth/member/wishlist/community/policy-talk'],\n AuthQueryKey['get:/wello/v2/auth/member/wishlist/best-contents'],\n AuthQueryKey['get:/wello/v2/auth/wello-comment'],\n AuthQueryKey['get:/wello/v2/auth/member/wishlist/emergency-room'],\n AuthQueryKey['get:/wello/v2/auth/emergency-room/{emergencyRoomId}'],\n AuthQueryKey['get:/wello/v2/auth/voucher/provider'],\n AuthQueryKey['get:/wello/v2/auth/voucher/provider/feedback/{id}'],\n AuthQueryKey['get:/wello/v2/auth/policy/feedback/{policy_id}'],\n AuthQueryKey['get:/wello/v2/auth/contents/feedback/{best_contents_id}'],\n AuthQueryKey['get:/wello/v2/auth/wello-comment/my'],\n AuthQueryKey['get:/wello/v2/auth/community/my'],\n AuthQueryKey['get:/wello/v2/auth/hometown-news/feedback/{hometown_news_id}'],\n AuthQueryKey[\n 'get:/wello/v2/auth/community/free-talk/feedback/{community_id_idx}'\n ],\n AuthQueryKey[\n 'get:/wello/v2/auth/community/policy-talk/feedback/{community_id_idx}'\n ],\n AuthQueryKey[\n 'get:/wello/v2/auth/community/wello-news/feedback/{community_id_idx}'\n ],\n AuthQueryKey['get:/wello/v2/auth/member/peer-group/policy'],\n AuthQueryKey['get:/wello/v2/auth/contents/best'],\n AuthQueryKey['get:/wello/v2/auth/member/wishlist/hometown-news'],\n AuthQueryKey['get:/wello/v2/auth/member/wishlist/community/wello-news'],\n];\n\ntype QueryObject = {\n query: {\n page: number;\n };\n};\n\nconst isQueryObject = (obj: object): obj is QueryObject => {\n return 'query' in obj && typeof (obj as any).query === 'object';\n};\n\nexport const useBookmark = () => {\n const { mutate } = useMutation({\n mutationFn: ({ contentId, isBookmarked, bookmarkType }: BookmarkParams) =>\n AuthApi[\n isBookmarked\n ? 'delete:/wello/v2/auth/member/wishlist'\n : 'post:/wello/v2/auth/member/wishlist'\n ]({\n body: {\n content_id: contentId,\n content_type_cd: bookmarkType,\n },\n }),\n meta: {\n reset: [AuthQueryKey['get:/wello/v2/auth/member/action-count']()],\n },\n });\n\n const queryClient = useQueryClient();\n const router = useCustomRouter();\n\n const { request: requestHaptic } = useHandleApp({\n type: MESSAGE_KEYWORD.HAPTIC,\n });\n\n const bookmark = useMemo(() => {\n const debouncedMutate = debounce((params, options) => {\n return mutate(params, options);\n }, 500);\n\n return (params: BookmarkParams) => {\n requestHaptic();\n const { contentId, isBookmarked, idx } = params;\n\n const { isLogin } = useAuthStore.getState();\n\n if (!isLogin)\n return router.push(\n ROUTES.LOGIN.withSearchParams({\n searchParams: {\n redirect: location.href,\n },\n }),\n );\n\n const bookmarkQueries = queryClient.getQueriesData({\n predicate: (query) =>\n OPTIMISTIC_QUERY_KEYS.some((queryKey) =>\n isSameEndpointQuery(query, queryKey()),\n ),\n });\n\n bookmarkQueries.forEach(([key, data]) => {\n const isBaseKeyHasId = (() => {\n const [firstKey] = key;\n\n const isV2ApiQueryKey = typeof firstKey === 'object';\n\n if (isV2ApiQueryKey) {\n const StringKey = JSON.stringify(firstKey);\n\n const id = String(contentId);\n\n if (StringKey.includes(id) || (idx && StringKey.includes(idx)))\n return true;\n }\n\n return false;\n })();\n\n if (\n (key.includes(contentId) ||\n isBaseKeyHasId ||\n (idx && key.includes(idx))) &&\n hasObjectKey(data, 'context') &&\n hasObjectKey(data.context, 'wishlist_yn')\n ) {\n const newData = cloneDeep(data);\n\n if (\n hasObjectKey(newData.context, 'wishlist_yn') &&\n typeof newData.context.wishlist_yn === 'boolean'\n ) {\n newData.context.wishlist_yn = !isBookmarked;\n\n if (\n 'wishlist_count' in newData.context &&\n typeof newData.context.wishlist_count === 'number'\n ) {\n newData.context.wishlist_count = isBookmarked\n ? newData.context.wishlist_count - 1\n : newData.context.wishlist_count + 1;\n }\n\n queryClient.setQueryData(key, newData);\n }\n }\n //* 일반 쿼리 (not Infinite Query)\n else if (\n data &&\n typeof data === 'object' &&\n hasObjectKey(data, 'context') &&\n data.context &&\n typeof data.context === 'object' &&\n hasObjectKey(data.context, 'contents') &&\n Array.isArray(data.context.contents)\n ) {\n const newData = cloneDeep(data);\n\n const updateContents = (contents: unknown[]): unknown[] =>\n contents.map((item) => {\n if (\n item &&\n typeof item === 'object' &&\n 'id' in item &&\n typeof item.id === 'number' &&\n item.id === contentId &&\n 'wishlist_yn' in item &&\n typeof item.wishlist_yn === 'boolean'\n ) {\n return { ...item, wishlist_yn: !isBookmarked };\n }\n\n return item;\n });\n\n const hasContents = (obj: unknown): obj is ContentsResponse =>\n obj !== null &&\n typeof obj === 'object' &&\n 'context' in obj &&\n obj.context !== null &&\n typeof obj.context === 'object' &&\n 'contents' in obj.context &&\n Array.isArray(obj.context.contents);\n\n if (hasContents(newData)) {\n const updatedContents = updateContents(newData.context.contents);\n const hasChanges = updatedContents.some(\n (item, index) => item !== newData.context.contents[index],\n );\n\n if (hasChanges) {\n newData.context.contents = updatedContents as BookmarkableItem[];\n queryClient.setQueryData(key, newData);\n }\n }\n } else\n for (const idKey of [\n 'community_id',\n 'best_contents_id',\n 'hometown_news_id',\n 'wello_comment_id',\n 'policy_talk_id',\n 'policy_id',\n 'id',\n ] as const) {\n const newData = cloneDeep(data);\n\n const targetObjectList = ((data) => {\n const result: unknown[] = [];\n\n const findTargetObject = (obj: unknown) => {\n if (obj && typeof obj === 'object') {\n if (hasObjectKey(obj, idKey) && obj[idKey] === contentId) {\n switch (idKey) {\n case 'id': {\n const hasId =\n 'meta_policy_id_idx' in obj || 'uuid' in obj;\n\n if (hasId) result.push(obj);\n\n break;\n }\n\n default:\n result.push(obj);\n break;\n }\n }\n\n for (const key in obj) {\n if (hasObjectKey(obj, key)) {\n findTargetObject(obj[key]);\n }\n }\n }\n };\n\n findTargetObject(data);\n\n return result;\n })(newData);\n\n const changeBookmarkCount = (obj: unknown) => {\n if (obj && typeof obj === 'object') {\n if (\n hasObjectKey(obj, 'wishlist_count') &&\n typeof obj.wishlist_count === 'number'\n ) {\n obj['wishlist_count'] = isBookmarked\n ? obj['wishlist_count'] - 1\n : obj['wishlist_count'] + 1;\n }\n for (const key in obj) {\n if (hasObjectKey(obj, key)) {\n changeBookmarkCount(obj[key]);\n }\n }\n }\n };\n\n const changeBookmarkYn = (obj: unknown) => {\n if (obj && typeof obj === 'object') {\n if (\n hasObjectKey(obj, 'wishlist_yn') &&\n typeof obj.wishlist_yn === 'boolean'\n ) {\n obj['wishlist_yn'] = !isBookmarked;\n }\n for (const key in obj) {\n if (hasObjectKey(obj, key)) {\n changeBookmarkYn(obj[key]);\n }\n }\n }\n };\n\n targetObjectList.forEach((obj) => {\n changeBookmarkCount(obj);\n changeBookmarkYn(obj);\n\n const [firstKey] = key;\n\n const isV2InfiniteQuery =\n firstKey && isQueryObject(firstKey) && '_infinite';\n\n if (isV2InfiniteQuery) {\n firstKey.query.page = 1;\n }\n\n queryClient.setQueryData(key, newData);\n });\n }\n });\n\n debouncedMutate(params, {\n onError: () => {\n bookmarkQueries.forEach(([key, data]) => {\n queryClient.setQueryData(key, data);\n });\n },\n });\n };\n }, [mutate, queryClient, requestHaptic, router]);\n\n return { bookmark };\n};\n","import type { ServerResponse } from '@common/utils';\nimport { useQueryClient } from '@tanstack/react-query';\nimport Image from 'next/image';\nimport { toast } from 'react-toastify';\n\nimport { pointOptionsKeys } from '@/query-factory/point';\n\nexport const useToastPoint = () => {\n const queryClient = useQueryClient();\n\n const toastPoint = (point: number) => {\n toast(\n // 가운데 정렬을 위한 콘테이너\n
\n {/* 토스트 콘테이너 */}\n
\n \n

\n \n {Math.abs(point).toLocaleString()}P\n \n {point >= 0 ? '가 적립되었어요!' : '가 차감되었어요!'}\n

\n
\n
,\n {\n className: '!bg-transparent !shadow-none pointer-events-none',\n },\n );\n\n //* 포인트 정보 갱신\n QUERY_KEYS_TO_INVALIDATE.forEach(async (key) => {\n await queryClient.invalidateQueries({\n queryKey: [key],\n });\n });\n };\n\n const toastPointError = ({ error }: { error: unknown }) => {\n const { return_code: errorCode, return_message: errorMessage } =\n error as ServerResponse;\n\n console.error(error);\n\n const toastErrorMessage = (message: string) =>\n toast(\n // 가운데 정렬을 위한 콘테이너\n
\n {/* 토스트 콘테이너 */}\n
\n \n

{message}

\n
\n
,\n {\n className: '!bg-transparent !shadow-none pointer-events-none',\n },\n );\n\n if (!errorCode || !errorMessage) {\n return toastErrorMessage('서버로 부터 정상적인 응답을 받지 못했습니다.');\n }\n\n if (30000 <= errorCode) {\n return toastErrorMessage(errorMessage);\n }\n\n return toastErrorMessage(\n `일시적인 오류가 발생했습니다. 잠시 후 다시 시도해주세요. (${errorCode})`,\n );\n };\n\n return {\n toastPoint,\n toastPointError,\n };\n};\n\nconst QUERY_KEYS_TO_INVALIDATE = [\n pointOptionsKeys.pointAttendance,\n pointOptionsKeys.pointHistoryInfiniteList,\n //* 필요에 따라 다른 queryKey를 추가\n];\n","import { createUuid } from '@common/utils';\nimport {\n infiniteQueryOptions,\n keepPreviousData,\n queryOptions,\n} from '@tanstack/react-query';\n\nimport { AUTH_API, POINT_ACTIVITY, UNAUTH_API } from '@/api';\n\nexport const pointOptionsKeys = {\n /** 본인 인증된 사용자 정보 */\n memberAccount: createUuid(),\n /** 포인트 정보 */\n point: createUuid(),\n /** 출석 내역 조회 */\n pointAttendance: createUuid(),\n /** 초대 수 */\n invitedMemberCount: createUuid(),\n /** 포인트 입출금 내역 리스트 */\n pointHistoryInfiniteList: createUuid(),\n /** 은행 리스트 */\n bankList: createUuid(),\n /** 포인트 예산 조회 */\n pointBudget: createUuid(),\n /** 포인트 시세 조회 */\n pointPrice: createUuid(),\n /** 내 포인트 조회 */\n myPointBudget: createUuid(),\n};\n\nexport const pointOptions = {\n //* 본인 인증된 사용자 정보\n memberAccount: () =>\n queryOptions({\n queryFn: () => AUTH_API.getMemberAccount(),\n queryKey: [pointOptionsKeys.memberAccount],\n placeholderData: keepPreviousData,\n select: ({ context }) => {\n return {\n accountNumber: context?.account_number,\n accountOwner: context?.account_owner,\n bankId: context?.bank_id,\n birthDate: context?.birth_date,\n memberAccountId: context?.member_account_id,\n };\n },\n }),\n //* point 정보, 특히 totalPoints\n point: () =>\n queryOptions({\n queryFn: () => AUTH_API.getDetailPointBalance(),\n queryKey: [pointOptionsKeys.pointAttendance],\n placeholderData: keepPreviousData,\n select: ({ context }) => {\n return {\n totalPoints: context?.total_points,\n debitablePoints: context?.debitable_points,\n memberOauthId: context?.member_oauth_id,\n };\n },\n //* 매번 요청 최신화\n staleTime: 0,\n gcTime: 0,\n }),\n //* 은행 리스트\n bankList: () =>\n queryOptions({\n queryFn: () => UNAUTH_API.getBankList(),\n queryKey: [pointOptionsKeys.bankList],\n placeholderData: keepPreviousData,\n select: ({ context }) => {\n return {\n contents: context?.contents,\n };\n },\n }),\n // * 출석 내역 조회\n pointAttendance: () =>\n queryOptions({\n queryFn: AUTH_API.getListPointAttendance,\n queryKey: [pointOptionsKeys.pointAttendance],\n placeholderData: keepPreviousData,\n staleTime: 0,\n select: ({ context }) => {\n return {\n attendanceList: context?.attendance_list.map((item) => ({\n checked: item.attendance_yn,\n date: item.date,\n })),\n count: context?.attendance_count,\n month: context?.month,\n point: context?.total_points,\n };\n },\n }),\n //* 초대 수\n invitedMemberCount: () =>\n queryOptions({\n queryFn: () => AUTH_API.getInvitedMemberCount(),\n queryKey: [pointOptionsKeys.invitedMemberCount],\n placeholderData: keepPreviousData,\n select: ({ context }) => {\n return {\n invitedMemberCount: context?.invited_member_count,\n };\n },\n }),\n //* 포인트 입출금 내역 리스트\n pointHistoryInfiniteList: (\n params: Pick<\n Parameters[number],\n 'activityType'\n >,\n ) =>\n infiniteQueryOptions({\n queryKey: [\n pointOptionsKeys.pointHistoryInfiniteList,\n params.activityType,\n ],\n queryFn: ({ pageParam }) =>\n AUTH_API.getPointHistoryList({\n activityType: params.activityType,\n page: pageParam,\n size: 50,\n }),\n getNextPageParam: (lastPage, allPages) => {\n // list length가 0이 아니면 다음 page 요청\n if (lastPage.context && lastPage.context.contents.length > 0) {\n return allPages.length + 1;\n }\n\n return null; // 나머지 조건에는 종료\n },\n initialPageParam: 1,\n staleTime: 0,\n gcTime: 0,\n }),\n //* 포인트 예산 조회\n pointBudget: () =>\n queryOptions({\n queryFn: () => UNAUTH_API.getPointBudget(),\n queryKey: [pointOptionsKeys.pointBudget],\n placeholderData: keepPreviousData,\n staleTime: 0,\n select: ({ context }) => {\n const weeklyBudget = context?.budget_point ?? 0;\n const weeklyAccumulatedPoint = context?.accumulated_point ?? 0;\n const benefitCount = context?.benefit_count ?? 0;\n const weeklyAccumulatedPointPercentage =\n (weeklyAccumulatedPoint / weeklyBudget) * 100;\n const weeklyRemainingPoint = context?.remain_point ?? 0;\n\n let weeklyAccumulatedPointText = '';\n\n if (10_000 <= weeklyAccumulatedPoint) {\n weeklyAccumulatedPointText = `${Math.floor(weeklyAccumulatedPoint / 10_000).toLocaleString()}만`;\n } else {\n weeklyAccumulatedPointText = `${weeklyAccumulatedPoint.toLocaleString()}`;\n }\n\n let weeklyBudgetText = '';\n\n if (10_000 <= weeklyBudget) {\n weeklyBudgetText = `${(weeklyBudget / 10_000).toLocaleString()}만`;\n } else {\n weeklyBudgetText = `${weeklyBudget.toLocaleString()}`;\n }\n\n return {\n weeklyBudget,\n weeklyAccumulatedPointPercentage,\n weeklyRemainingPoint,\n weeklyAccumulatedPointText,\n weeklyBudgetText,\n benefitCount,\n };\n },\n }),\n //* 포인트 시세 조회\n pointPrice: () =>\n queryOptions({\n queryFn: () => UNAUTH_API.getPointPrice(),\n queryKey: [pointOptionsKeys.pointPrice],\n placeholderData: keepPreviousData,\n staleTime: Infinity,\n gcTime: Infinity,\n select: ({ context }) => {\n const pointEarning = context?.point_earning;\n\n if (!pointEarning) return;\n\n const activity = Object.values(POINT_ACTIVITY).reduce(\n (acc, cur) => {\n acc[cur] = pointEarning[cur];\n\n return acc;\n },\n {} as Record,\n );\n\n return activity;\n },\n }),\n myPointBudget: () =>\n queryOptions({\n queryFn: () => AUTH_API.getPointBudget(),\n queryKey: [pointOptionsKeys.myPointBudget],\n select: ({ context }) => {\n const pointMission = {\n isSaveFilter: context?.save_filter_yn ?? false,\n isAttendance: context?.today_attendance_yn ?? false,\n isInvite: context?.today_invite_yn ?? false,\n isWrite: context?.today_write_yn ?? false,\n };\n\n const completedMission: (keyof typeof pointMission)[] = [];\n const leftMission: (keyof typeof pointMission)[] = [];\n\n Object.entries(pointMission).forEach(([key, value]) => {\n const missionKey = key as keyof typeof pointMission;\n if (value) {\n completedMission.push(missionKey);\n } else {\n leftMission.push(missionKey);\n }\n });\n\n return {\n eventCombo: context?.event_count ?? 0,\n todayAccumulatedPoint: context?.today_accumulated_point ?? 0,\n completedMission,\n leftMission,\n pointMission,\n totalWithdrawalCount: context?.total_withdrawal_count ?? 0,\n };\n },\n staleTime: 0,\n placeholderData: keepPreviousData,\n }),\n};\n","function isPrimitive(value) {\n return value == null || (typeof value !== 'object' && typeof value !== 'function');\n}\n\nexport { isPrimitive };\n","function isTypedArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\nexport { isTypedArray };\n","import { getSymbols } from '../compat/_internal/getSymbols.mjs';\nimport { getTag } from '../compat/_internal/getTag.mjs';\nimport { uint32ArrayTag, uint16ArrayTag, uint8ClampedArrayTag, uint8ArrayTag, symbolTag, stringTag, setTag, regexpTag, objectTag, numberTag, mapTag, int32ArrayTag, int16ArrayTag, int8ArrayTag, float64ArrayTag, float32ArrayTag, dateTag, booleanTag, dataViewTag, arrayBufferTag, arrayTag, argumentsTag } from '../compat/_internal/tags.mjs';\nimport { isPrimitive } from '../predicate/isPrimitive.mjs';\nimport { isTypedArray } from '../predicate/isTypedArray.mjs';\n\nfunction cloneDeepWith(obj, cloneValue) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), cloneValue);\n}\nfunction cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = new Map(), cloneValue = undefined) {\n const cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);\n if (cloned != null) {\n return cloned;\n }\n if (isPrimitive(valueToClone)) {\n return valueToClone;\n }\n if (stack.has(valueToClone)) {\n return stack.get(valueToClone);\n }\n if (Array.isArray(valueToClone)) {\n const result = new Array(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n if (Object.hasOwn(valueToClone, 'index')) {\n result.index = valueToClone.index;\n }\n if (Object.hasOwn(valueToClone, 'input')) {\n result.input = valueToClone.input;\n }\n return result;\n }\n if (valueToClone instanceof Date) {\n return new Date(valueToClone.getTime());\n }\n if (valueToClone instanceof RegExp) {\n const result = new RegExp(valueToClone.source, valueToClone.flags);\n result.lastIndex = valueToClone.lastIndex;\n return result;\n }\n if (valueToClone instanceof Map) {\n const result = new Map();\n stack.set(valueToClone, result);\n for (const [key, value] of valueToClone) {\n result.set(key, cloneDeepWithImpl(value, key, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (valueToClone instanceof Set) {\n const result = new Set();\n stack.set(valueToClone, result);\n for (const value of valueToClone) {\n result.add(cloneDeepWithImpl(value, undefined, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(valueToClone)) {\n return valueToClone.subarray();\n }\n if (isTypedArray(valueToClone)) {\n const result = new (Object.getPrototypeOf(valueToClone).constructor)(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n return result;\n }\n if (valueToClone instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && valueToClone instanceof SharedArrayBuffer)) {\n return valueToClone.slice(0);\n }\n if (valueToClone instanceof DataView) {\n const result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof File !== 'undefined' && valueToClone instanceof File) {\n const result = new File([valueToClone], valueToClone.name, {\n type: valueToClone.type,\n });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Blob) {\n const result = new Blob([valueToClone], { type: valueToClone.type });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Error) {\n const result = new valueToClone.constructor();\n stack.set(valueToClone, result);\n result.message = valueToClone.message;\n result.name = valueToClone.name;\n result.stack = valueToClone.stack;\n result.cause = valueToClone.cause;\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof valueToClone === 'object' && isCloneableObject(valueToClone)) {\n const result = Object.create(Object.getPrototypeOf(valueToClone));\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n return valueToClone;\n}\nfunction copyProperties(target, source, objectToClone = target, stack, cloneValue) {\n const keys = [...Object.keys(source), ...getSymbols(source)];\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const descriptor = Object.getOwnPropertyDescriptor(target, key);\n if (descriptor == null || descriptor.writable) {\n target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);\n }\n }\n}\nfunction isCloneableObject(object) {\n switch (getTag(object)) {\n case argumentsTag:\n case arrayTag:\n case arrayBufferTag:\n case dataViewTag:\n case booleanTag:\n case dateTag:\n case float32ArrayTag:\n case float64ArrayTag:\n case int8ArrayTag:\n case int16ArrayTag:\n case int32ArrayTag:\n case mapTag:\n case numberTag:\n case objectTag:\n case regexpTag:\n case setTag:\n case stringTag:\n case symbolTag:\n case uint8ArrayTag:\n case uint8ClampedArrayTag:\n case uint16ArrayTag:\n case uint32ArrayTag: {\n return true;\n }\n default: {\n return false;\n }\n }\n}\n\nexport { cloneDeepWith, cloneDeepWithImpl, copyProperties };\n","import { cloneDeepWithImpl } from './cloneDeepWith.mjs';\n\nfunction cloneDeep(obj) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), undefined);\n}\n\nexport { cloneDeep };\n"],"names":["DownloadAppBanner","webviewType","osType","useDeviceInfoStore","useShallow","state","isVisible","setIsVisible","useState","isMobileWeb","includes","useEffect","lastClosed","localStorage","getItem","now","dayjs","isSame","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","Portal","renderTo","document","getElementById","SELECTOR","PAGE_NAV_WRAPPER","jsxs","aside","className","div","Image","alt","height","quality","src","width","Button","asChild","dimensions","a","href","DEFAULT_META","appLinks","ios","url","android","rel","target","button","type","onClick","setItem","toISOString","SvgDelete","name","CONTENT_CONFIG","policy","title","descriptionPrefix","descriptionSuffix","imageSrc","imageAlt","info","talk","fadeInUpVariants","hidden","opacity","y","visible","transition","duration","ease","imageVariants","initial","scale","hover","stiffness","damping","NonMemberContentsBlock","pointJoinData","pointMemberFilterData","contentType","isTalkDetail","param","isLogin","useAuthStore","pathname","usePathname","router","useCustomRouter","data","useQuery","UnauthQueryOptions","query","activity_detail_type","select","context","rewardPoint","point","replace","ROUTES","LOGIN","withSearchParams","searchParams","redirect","Fragment","contentItem","BottomNavPortal","motion","style","background","animate","variants","cn","whileHover","concat","delay","p","br","span","CountUp","preserveValue","end","theme","CustomLink","BookmarkButton","bookmarkCount","isBookmarked","isDisplayed","setIsDisplayed","inView","useInView","onChange","ref","e","preventDefault","SvgBookmarkFill","startOnMount","_g","_defs","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","components_SvgMailSend","createSvgComponent","props","node_modules_react","createElement","xmlns","fill","viewBox","clipPath","fillRule","d","clipRule","id","CommentFieldContent","initOnFocus","replyTo","contentId","commentType","rootCommentId","parentCommentId","onSuccess","topDivider","isFocused","setIsFocused","startText","protectedPrefix","minHtmlLength","tempContentForProtectedPrefix","useRef","editorRef","isSubmitDisabled","setIsSubmitDisabled","handleSubmitDisabled","text","editor","getText","blockSeparator","startsWith","slice","initContent","current","commands","setContent","postComment","useMutation","mutationFn","AuthApi","body","comment_type_cd","content_id","contents","parent_wello_comment_id","root_wello_comment_id","meta","reset","AuthQueryKey","CustomError","setTimeout","focus","jsx_runtime","CustomEditor","Provider","placeholder","onBlur","onCreate","onFocus","URL","window","location","push","search","onUpdate","content","getHTML","form","onSubmit","trim","mutate","Contents","disabled","isPending","Spinner","size","SvgMailSend","ReplyCommentField","nickname","useSuspenseQuery","path","welloCommentId","nick_name","FixedArea","CommentField","withPortal","restProps","Container","undefined","Suspense","fallback","CommentListWithField","initialData","policyTalkContentIdx","hasCommentField","commentFieldTopDivider","commentFieldClassName","useSearchParams","sortType","get","SEARCH_PARAMS","SORT_TYPE","COMMENT_SORT_TYPE","LATEST","params","Number","isNaN","PARENT_COMMENT_ID","isEnumValue","return_message","setPlaceholder","isCommentPage","toastPoint","useToastPoint","CommentList","onChangeCommentData","onClickEditButton","commentId","isRoot","POLICY_TALK_COMMENT_EDIT","contentIdx","COMMENT_EDIT","dynamicPath","onClickReplyButton","targetRoute","COMMENT_LIST","res","set","history","replaceState","scroller","scrollTo","COMMENT_LIST_TOP","smooth","containerId","MAIN","offset","point_activity","result_yn","add_points","COMMENT_PREFIX","wello_comment_id","OPTIMISTIC_QUERY_KEYS","isQueryObject","obj","useBookmark","bookmarkType","content_type_cd","queryClient","useQueryClient","request","requestHaptic","useHandleApp","MESSAGE_KEYWORD","HAPTIC","bookmark","useMemo","debouncedMutate","debounce","options","idx","getState","bookmarkQueries","getQueriesData","predicate","some","isSameEndpointQuery","queryKey","forEach","key","isBaseKeyHasId","firstKey","StringKey","JSON","stringify","String","hasObjectKey","newData","cloneDeep","wishlist_yn","wishlist_count","setQueryData","Array","isArray","updatedContents","map","item","index","idKey","targetObjectList","result","findTargetObject","changeBookmarkCount","changeBookmarkYn","page","onError","toast","Math","abs","toLocaleString","QUERY_KEYS_TO_INVALIDATE","invalidateQueries","toastPointError","message","error","return_code","errorCode","errorMessage","console","pointOptionsKeys","pointAttendance","pointHistoryInfiniteList","memberAccount","createUuid","invitedMemberCount","bankList","pointBudget","pointPrice","myPointBudget","pointOptions","queryOptions","queryFn","AUTH_API","getMemberAccount","placeholderData","keepPreviousData","accountNumber","account_number","accountOwner","account_owner","bankId","bank_id","birthDate","birth_date","memberAccountId","member_account_id","getDetailPointBalance","totalPoints","total_points","debitablePoints","debitable_points","memberOauthId","member_oauth_id","staleTime","gcTime","UNAUTH_API","getBankList","getListPointAttendance","attendanceList","attendance_list","checked","attendance_yn","date","count","attendance_count","month","getInvitedMemberCount","invited_member_count","infiniteQueryOptions","activityType","pageParam","getPointHistoryList","getNextPageParam","lastPage","allPages","initialPageParam","getPointBudget","weeklyBudget","budget_point","weeklyAccumulatedPoint","accumulated_point","benefitCount","benefit_count","weeklyRemainingPoint","remain_point","weeklyAccumulatedPointText","floor","weeklyBudgetText","weeklyAccumulatedPointPercentage","getPointPrice","Infinity","pointEarning","point_earning","values","POINT_ACTIVITY","reduce","acc","cur","pointMission","isSaveFilter","save_filter_yn","isAttendance","today_attendance_yn","isInvite","today_invite_yn","isWrite","today_write_yn","completedMission","leftMission","entries","value","eventCombo","event_count","todayAccumulatedPoint","today_accumulated_point","totalWithdrawalCount","total_withdrawal_count","cloneDeepWithImpl","valueToClone","keyToClone","objectToClone","stack","Map","cloneValue","cloned","has","i","hasOwn","input","Date","getTime","RegExp","source","flags","lastIndex","Set","add","Buffer","isBuffer","subarray","ArrayBuffer","isView","x","DataView","getPrototypeOf","constructor","SharedArrayBuffer","buffer","byteOffset","byteLength","copyProperties","File","Blob","Error","cause","isCloneableObject","object","getTag","h","tags","mn","a4","LP","bZ","Vf","XU","yK","H1","Ey","CP","dB","b7","oV","P4","vu","YA","gH","WL","p_","Mw","kj","Fl","create","keys","getSymbols","descriptor","getOwnPropertyDescriptor","writable"],"sourceRoot":""}