{"version":3,"file":"static/chunks/1551-420caf51656b317f.js","mappings":"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","sources":["webpack://_N_E/../common/__generated__/icon/figma/chatbubble-typing-fill.svg","webpack://_N_E/../common/__generated__/icon/components/SvgChatbubbleTypingFill.tsx","webpack://_N_E/../common/__generated__/icon/figma/visible.svg","webpack://_N_E/../common/__generated__/icon/components/SvgVisible.tsx","webpack://_N_E/./src/components/molecule/PolicyCard.tsx","webpack://_N_E/./src/hooks/useBookmark.ts","webpack://_N_E/./src/query-factory/auth.ts","webpack://_N_E/./src/query-factory/dpg.ts","webpack://_N_E/./src/query-factory/family.ts","webpack://_N_E/./src/query-factory/hometown-news.ts","webpack://_N_E/./src/query-factory/meta-code.ts","webpack://_N_E/./src/utils/redirectDetailPage.ts","webpack://_N_E/./src/api/getPolicyDetail.ts","webpack://_N_E/./src/query-factory/policy.ts","webpack://_N_E/./src/query-factory/policy-info.ts","webpack://_N_E/./src/query-factory/situation.ts","webpack://_N_E/./src/query-factory/index.ts","webpack://_N_E/./src/query-factory/point.ts","webpack://_N_E/./src/utils/extractDate.ts","webpack://_N_E/../../node_modules/es-toolkit/dist/error/AbortError.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/promise/delay.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/error/TimeoutError.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/promise/timeout.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/promise/withTimeout.mjs"],"sourcesContent":["var _path;\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 SvgChatbubbleTypingFill = function SvgChatbubbleTypingFill(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), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1D5DD\",\n fillRule: \"evenodd\",\n d: \"M9.891 1.243a10.96 10.96 0 0 1 6.864.884 10.958 10.958 0 0 1-9.33 19.83l-5.463.985a.79.79 0 0 1-.876-1.05l1.565-4.169a10.96 10.96 0 0 1 7.24-16.48m-1.509 11.87a1.576 1.576 0 1 1-2.228-2.229 1.576 1.576 0 0 1 2.228 2.228m4.728 0a1.576 1.576 0 1 0-2.228-2.23 1.576 1.576 0 0 0 2.228 2.23m4.728 0a1.576 1.576 0 1 0-2.229-2.23 1.576 1.576 0 0 0 2.229 2.23\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgChatbubbleTypingFill;","import { createSvgComponent } from \"../../../icon/createSvgComponent\";\nimport ChatbubbleTypingFill from \"../figma/chatbubble-typing-fill.svg\";\nexport default createSvgComponent(ChatbubbleTypingFill);","var _path;\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 SvgVisible = function SvgVisible(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), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M11.196 3.962c-2.628.245-5.372 1.723-8.013 4.318-1.021 1.003-1.87 1.987-2.088 2.42-.09.179-.202.526-.243.76-.05.281-.05.798 0 1.078.07.401.253.83.487 1.15.332.453 1.106 1.307 1.832 2.02 2.667 2.623 5.4 4.09 8.061 4.33.355.033 1.181.033 1.536 0 2.657-.24 5.389-1.705 8.049-4.318.81-.796 1.634-1.716 1.924-2.15.337-.504.492-1.148.44-1.82a2.7 2.7 0 0 0-.44-1.32c-.29-.433-1.113-1.354-1.924-2.15C18.16 5.669 15.425 4.2 12.768 3.96a14 14 0 0 0-1.572.001m.372 1.98c-1.09.1-1.96.349-3.036.872-1.767.858-3.605 2.365-5.29 4.334-.326.381-.413.542-.429.792-.019.294.047.456.314.773.859 1.022 1.942 2.094 2.861 2.83 1.574 1.26 3.126 2.062 4.587 2.37.531.112.846.144 1.425.144 1.186 0 2.201-.255 3.468-.87 1.785-.869 3.708-2.453 5.346-4.405.316-.376.365-.482.366-.783 0-.21-.006-.24-.078-.384-.13-.26-.995-1.232-1.753-1.969-1.3-1.265-2.586-2.203-3.881-2.832-.941-.458-1.732-.707-2.616-.826a10 10 0 0 0-1.284-.045m.084 1.93c-1.813.15-3.346 1.506-3.707 3.283a4.14 4.14 0 0 0 5.819 4.59 4.14 4.14 0 0 0 1.981-5.51 4.14 4.14 0 0 0-4.093-2.362m.004 2.015c-.828.15-1.465.72-1.712 1.53-.058.19-.064.248-.064.583s.006.393.064.583c.119.389.297.68.583.954.274.262.522.406.89.519.19.058.248.064.583.064s.393-.006.583-.064c.368-.112.616-.257.89-.519.286-.273.464-.565.583-.954.058-.19.064-.248.064-.583s-.006-.393-.064-.583a2.1 2.1 0 0 0-.583-.954 1.98 1.98 0 0 0-1.401-.588c-.165-.005-.352 0-.416.012\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgVisible;","import { createSvgComponent } from \"../../../icon/createSvgComponent\";\nimport Visible from \"../figma/visible.svg\";\nexport default createSvgComponent(Visible);","'use client';\n\nimport { Badge } from '@common/components';\nimport { SvgBookmarkFill, SvgChatbubbleTypingFill } from '@common/icon';\nimport { assert, cn } from '@common/utils';\n\nimport { BOOKMARK_TYPE } from '@/api';\nimport { LazyImage } from '@/components/client';\nimport { Skeleton } from '@/components/server';\nimport { ROUTES, SELECTOR } from '@/constants';\nimport { useBookmark } from '@/hooks/useBookmark';\nimport { useCustomRouter } from '@/hooks/useCustomRouter';\nimport { extractDate } from '@/utils/extractDate';\n\nimport { CustomLink } from '../atom/CustomLink';\n\nexport type PolicyCardProps = {\n isLoading?: boolean;\n id?: number;\n idIdx?: string;\n imageUrl?: string;\n name?: string;\n endAt?: string;\n dday?: string;\n benefit?: string;\n commentCount?: number;\n border?: boolean;\n isBookmarked?: boolean;\n bookmarkCount?: number;\n};\n\nconst BOOKMARK = '스크랩';\nconst COMMENT = '댓글';\n\nexport const PolicyCard = ({\n endAt,\n name,\n dday,\n benefit,\n bookmarkCount,\n commentCount,\n isBookmarked = false,\n isLoading,\n ...props\n}: PolicyCardProps) => {\n const router = useCustomRouter();\n\n const date = endAt ? extractDate(endAt) : undefined;\n\n const href = ROUTES.POLICY_DETAIL.pathname({\n idIdx: props.idIdx ?? '',\n });\n\n const { bookmark } = useBookmark();\n\n return (\n {\n if (isLoading) e.preventDefault();\n }}\n >\n
\n {isLoading ? (\n \n ) : (\n \n )}\n {isLoading ? (\n \n ) : (\n
\n {dday ? (\n \n {dday}\n \n ) : null}\n

{name}

\n
\n )}\n
\n {isLoading ? (\n
\n
\n \n \n
\n \n \n
\n ) : (\n \n )}\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 { createUuid,CustomError } from '@common/utils';\nimport { queryOptions } from '@tanstack/react-query';\nimport ky from 'ky';\n\nimport { LOGIN_TYPE } from '@/api';\nimport { API_ROUTES, ENV } from '@/constants';\n\nexport const authQueryOptionsKeys = {\n socialLogin: createUuid(),\n};\n\ninterface SocialLoginProps {\n state?: string | null;\n code?: string | null;\n}\n\nexport interface SocialLoginResult {\n socialLoginToken: string;\n loginType: LOGIN_TYPE;\n}\n\ninterface LoginResponse {\n access_token: string;\n}\n\nexport const authQueryOptions = {\n socialLogin: ({ code, state }: SocialLoginProps) => {\n const enabled = !!(code && state);\n\n return queryOptions({\n queryKey: [authQueryOptionsKeys.socialLogin, enabled, state],\n staleTime: 0,\n enabled,\n queryFn: async (): Promise => {\n if (!enabled)\n throw new CustomError({\n return_message: 'socialLoginProps 가 없습니다.',\n });\n\n const decodedState = window.atob(state);\n\n const { type, redirectPath } = JSON.parse(decodedState);\n\n switch (type) {\n //! ⚠️ Kakao는 client secret이 없어서 front에서 직접 요청 가능\n case 'kakao': {\n const { access_token } = await ky\n .post('https://kauth.kakao.com/oauth/token', {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({\n code,\n state,\n redirect_uri: `${ENV.NEXT_PUBLIC_DOMAIN}${redirectPath}`,\n grant_type: 'authorization_code',\n client_id: ENV.NEXT_PUBLIC_KAKAO_CLIENT_ID,\n }),\n })\n .json();\n\n return {\n loginType: LOGIN_TYPE.KAKAO,\n socialLoginToken: access_token,\n };\n }\n\n case 'naver': {\n const { access_token } = await ky\n .post(API_ROUTES.NAVER_AUTH.pathname, {\n json: {\n code,\n state,\n },\n })\n .json();\n\n return {\n loginType: LOGIN_TYPE.NAVER,\n socialLoginToken: access_token,\n };\n }\n\n case 'google': {\n const { access_token } = await ky\n .post(API_ROUTES.GOOGLE_AUTH.pathname, {\n json: {\n code,\n state,\n },\n })\n .json();\n\n return {\n loginType: LOGIN_TYPE.GOOGLE,\n socialLoginToken: access_token,\n };\n }\n\n case 'apple': {\n const { id_token } = await ky\n .post(API_ROUTES.APPLE_TOKEN.pathname, {\n json: {\n code,\n state,\n },\n })\n .json<{ id_token: string }>();\n\n return {\n loginType: LOGIN_TYPE.APPLE,\n socialLoginToken: id_token,\n };\n }\n\n default:\n throw new Error('잘못된 로그인 타입입니다.');\n }\n },\n });\n },\n};\n","import { assert, createUuid } from '@common/utils';\nimport { queryOptions } from '@tanstack/react-query';\nimport ky from 'ky';\n\nimport { AUTH_API,DPG_API } from '@/api';\n\ninterface DeptReportDetailProps {\n custCi: string;\n rprYr: string;\n dbtrRprClssCd: string;\n dbtrRprDt: string;\n}\n\nexport const dpgQueryOptionsKeys = {\n checkEligibility: createUuid(),\n agreement: createUuid(),\n notice: createUuid(),\n loanInterest: createUuid(),\n deptReportList: createUuid(),\n deptReportDetail: createUuid(),\n getCIInfo: createUuid(),\n address: createUuid(),\n};\n\nexport const dpgQueryOptions = {\n checkEligibility: (ciToken: string) =>\n queryOptions({\n queryKey: [dpgQueryOptionsKeys.checkEligibility, ciToken],\n queryFn: () =>\n DPG_API.postEligibilityCheck({\n requestBody: {\n custCi: ciToken,\n },\n }),\n retry: false,\n enabled: ciToken !== '',\n select: ({ context }) => {\n return {\n ciToken: context?.custCi,\n isTarget: context?.canRprYn === 'Y',\n isPeriodicReport: context?.preRgrRprtYn === 'Y',\n };\n },\n }),\n agreement: () =>\n queryOptions({\n queryKey: [dpgQueryOptionsKeys.agreement],\n queryFn: DPG_API.getAgreement,\n select: ({ context }) => {\n assert(context, 'context is not valid');\n\n return {\n financialInfo: context.finInfoAgmtCten,\n personalInfo: context.indvInfoAgmtCten,\n };\n },\n }),\n notice: (year = 2024) =>\n queryOptions({\n queryKey: [dpgQueryOptionsKeys.notice, year, DPG_API],\n queryFn: () =>\n ky\n .get('https://stage.dpgapi.wello.im/wello/v1/dept-reporting/notice', {\n searchParams: { baseYear: year.toString() },\n })\n .json>>(),\n select: (data) => {\n assert(data.context, 'context is not valid');\n\n return {\n content: data.context.noticeCten,\n };\n },\n }),\n loanInterest: (custCi: string) =>\n queryOptions({\n queryKey: [dpgQueryOptionsKeys.loanInterest, custCi],\n queryFn: () =>\n DPG_API.getLoanInterestList({\n requestBody: {\n custCi,\n baseYear: new Date().getFullYear().toString(),\n },\n }),\n enabled: !!custCi,\n select: ({ context }) => {\n assert(context, 'context is not valid');\n\n return {\n custCi: context.custCi,\n basDt: context.basDt,\n loanAmtSum: context.loanAmtSum,\n loanBlmtSum: context.loanBlmtSum,\n loanIntAmtSum: context.loanIntAmtSum,\n nyRcpDutyApmtAmt: context.nyRcpDutyApmtAmt,\n nyRcpOvdAmt: context.nyRcpOvdAmt,\n nyRcpOvdAdAmt: context.nyRcpOvdAdAmt,\n nyRcpAmtSum: context.nyRcpAmtSum,\n loanList: context.loanList,\n };\n },\n }),\n deptReportList: (custCi: string) =>\n queryOptions({\n queryKey: [dpgQueryOptionsKeys.deptReportList, custCi],\n queryFn: () =>\n DPG_API.getReportHistoryList({\n requestBody: {\n custCi,\n },\n }),\n enabled: !!custCi,\n select: ({ context }) => {\n assert(context, 'context is not valid');\n\n return {\n contents: context.contents,\n total: context.totalCount,\n };\n },\n }),\n deptReportDetail: ({\n custCi,\n rprYr,\n dbtrRprClssCd,\n dbtrRprDt,\n }: DeptReportDetailProps) =>\n queryOptions({\n queryKey: [\n dpgQueryOptionsKeys.deptReportDetail,\n custCi,\n dbtrRprClssCd,\n dbtrRprDt,\n rprYr,\n ],\n queryFn: () =>\n DPG_API.getReportHistory({\n requestBody: {\n custCi,\n rprYr,\n dbtrRprClssCd,\n dbtrRprDt,\n },\n }),\n enabled: !!custCi,\n select: ({ context }) => {\n assert(context, 'context is not valid');\n\n return {\n custCi: context.custCi,\n rprFltNm: context.rprFltNm,\n dbtrRprClssCd: context.dbtrRprClssCd,\n rprDutyAbtnYr: context.rprDutyAbtnYr,\n dbtrRprDt: context.dbtrRprDt,\n univGrdtYn: context.univGrdtYn,\n grdtDt: context.grdtDt,\n grdtUnivCd: context.grdtUnivCd,\n grdtUnivNm: context.grdtUnivNm,\n ovseRsdYn: context.ovseRsdYn,\n rsdcPno: context.rsdcPno,\n rsdcPnoAddr: context.rsdcPnoAddr,\n rsdcDtalAddr: context.rsdcDtalAddr,\n rsdcStsgLtnoDivCd: context.rsdcStsgLtnoDivCd,\n ctyCd: context.ctyCd,\n ctyNm: context.ctyNm,\n etcMttCten: context.etcMttCten,\n mblTno: context.mblTno,\n emailAddr: context.emailAddr,\n wkplEan: context.wkplEan,\n spoEan: context.spoEan,\n spoFrnrYn: context.spoFrnrYn,\n spoNm: context.spoNm,\n spoOvseRsdYn: context.spoOvseRsdYn,\n spoRsdcPno: context.spoRsdcPno,\n spoRsdcPnoAddr: context.spoRsdcPnoAddr,\n spoRsdcDtalAddr: context.spoRsdcDtalAddr,\n spoRsdcStsgLtnoDivCd: context.spoRsdcStsgLtnoDivCd,\n spoCtyCd: context.spoCtyCd,\n spoCtyNm: context.spoCtyNm,\n spoWkplEan: context.spoWkplEan,\n indvInfoOferAgmtYn: context.indvInfoOferAgmtYn,\n finInfoOferAgmtYn: context.finInfoOferAgmtYn,\n dbtrNrgrRprClssCd: context.dbtrNrgrRprClssCd,\n careerList: context.careerList,\n spoCareerList: context.spoCareerList,\n };\n },\n }),\n getCIInfo: (accessToken: string | null) =>\n queryOptions({\n queryKey: [dpgQueryOptionsKeys.getCIInfo],\n queryFn: AUTH_API.getMemberVerification,\n enabled: !!accessToken,\n select: ({ context }) => {\n assert(context, 'context is not valid');\n\n return {\n ci: context.ci,\n };\n },\n }),\n address: (custCi: string) =>\n queryOptions({\n queryKey: [dpgQueryOptionsKeys.address, custCi],\n queryFn: () => DPG_API.getAddress({ requestBody: { custCi } }),\n select: ({ context }) => {\n assert(context, 'context is not valid');\n\n return {\n address: context.pnoAddr,\n addressDetail: context.dtalAddr,\n zonecode: context.pno,\n addressType: context.stsgLtnoDivCd,\n };\n },\n }),\n};\n","import { queryOptions } from '@tanstack/react-query';\n\nimport { AUTH_API } from '@/api';\nimport { queryKeys } from '@/constants/query-keys';\n\ninterface FamilyListOptionsProps {\n isLogin: boolean;\n}\n\nexport const familyQueryOptions = {\n list: ({ isLogin }: FamilyListOptionsProps) =>\n queryOptions({\n queryKey: [queryKeys.familyList],\n queryFn: AUTH_API.getFamilyList,\n select: ({ context }) => {\n const { wello_member_family_list, total_policy_count } = context ?? {};\n\n return {\n familyList: wello_member_family_list,\n totalPolicyCount: total_policy_count,\n };\n },\n enabled: isLogin,\n }),\n};\n","import { infiniteQueryOptions, queryOptions } from '@tanstack/react-query';\n\nimport {\n AuthInfiniteQueryOptions,\n AuthQueryOptions,\n UnauthInfiniteQueryOptions,\n UnauthQueryOptions,\n} from '@/api/v2';\n\ninterface HometownNewsFeedbackOptionsProps {\n id: number | undefined;\n isLogin?: boolean;\n}\n\ninterface HometownNewsListOptionsProps {\n keyword?: string;\n codeRegion?: string;\n codeSubRegion?: string;\n isLogin: boolean | undefined;\n hometownNewsSort?: 'LATEST' | 'POPULARITY';\n}\n\nexport const hometownNewsQueryOptions = {\n list: ({\n keyword,\n isLogin,\n codeRegion,\n codeSubRegion,\n hometownNewsSort = 'LATEST',\n }: HometownNewsListOptionsProps) => {\n const INITIAL_PAGE = 1;\n const PAGE_SIZE = 20;\n\n return infiniteQueryOptions({\n ...(isLogin\n ? AuthInfiniteQueryOptions['get:/wello/v2/auth/hometown-news']\n : UnauthInfiniteQueryOptions['get:/wello/v2/allows/hometown-news'])({\n query: {\n page: INITIAL_PAGE,\n size: PAGE_SIZE,\n code_region: codeRegion,\n code_sub_region: codeSubRegion,\n hometown_news_sort: hometownNewsSort,\n search_keyword: keyword,\n },\n }),\n enabled: isLogin !== undefined,\n select: (data) => ({\n pages: data.pages.map(({ context }) => ({\n contents: context?.contents?.map((news) => {\n return {\n id: news.hometown_news_id,\n idIdx: news.hometown_news_id_idx,\n title: news.hometown_news_name,\n daysAgo: news.days_ago,\n thumbnail: news.thumbnail,\n commentCount: news.comment_count,\n isBookmarked: news.wishlist_yn,\n bookmarkCount: news.wishlist_count,\n dateText: news.published_at,\n summary: news.summary,\n thumbUpCount: news.like_count,\n isThumbUp: news.like_yn,\n };\n }),\n totalCount: context?.total_count,\n })),\n pageParams: data.pageParams,\n }),\n getNextPageParam: (lastPage) => {\n if (lastPage.context?.total_count && lastPage.context.page) {\n const nextPage = lastPage.context.page + 1;\n const maxPage = Math.ceil(lastPage.context.total_count / PAGE_SIZE);\n\n return nextPage <= maxPage ? nextPage : undefined;\n }\n },\n initialPageParam: INITIAL_PAGE,\n });\n },\n feedback: ({ id, isLogin }: HometownNewsFeedbackOptionsProps) =>\n queryOptions({\n ...(isLogin\n ? AuthQueryOptions[\n 'get:/wello/v2/auth/hometown-news/feedback/{hometown_news_id}'\n ]\n : UnauthQueryOptions[\n 'get:/wello/v2/allows/hometown-news/feedback/{hometown_news_id}'\n ])({\n path: {\n hometown_news_id: id!,\n },\n }),\n enabled: isLogin !== undefined && !!id,\n }),\n};\n","import { assert, createUuid } from '@common/utils';\nimport { queryOptions } from '@tanstack/react-query';\nimport ky from 'ky';\n\nimport { UNAUTH_API } from '@/api';\n\nexport const metaCodeQueryOptionsKeys = {\n regionList: createUuid(),\n subRegionList: createUuid(),\n geolocation: createUuid(),\n geoCodingByRegionCode: createUuid(),\n};\n\nexport const metaCodeQueryOptions = {\n regionList: queryOptions({\n queryKey: [metaCodeQueryOptionsKeys.regionList],\n queryFn: () => UNAUTH_API.getMetaCode({ metaCode: 'C01' }),\n select: (data) =>\n data.context?.meta_code_all_list?.[0].meta_sub_code_list?.map((item) => ({\n label: item.value,\n value: item.code,\n })),\n }),\n\n subRegionList: (regionCode?: string) =>\n queryOptions({\n queryKey: [metaCodeQueryOptionsKeys.subRegionList, regionCode],\n queryFn: () => {\n assert(regionCode, '지역코드가 없습니다.');\n\n return UNAUTH_API.getMetaCode({ metaCode: regionCode });\n },\n enabled: !!regionCode,\n select: ({ context }) => {\n const [{ meta_sub_code_list }] = context?.meta_code_all_list ?? [];\n\n const allItem = meta_sub_code_list?.find((item) =>\n item.value.includes('전체'),\n );\n\n const options = meta_sub_code_list?.filter(\n (item) => !item.value.includes('전체'),\n );\n\n if (allItem && options) {\n options.unshift(allItem);\n }\n\n return options?.map(({ value, code }) => ({\n label: value,\n value: code,\n }));\n },\n }),\n\n geolocation: () =>\n queryOptions({\n queryKey: [metaCodeQueryOptionsKeys.geolocation],\n queryFn: async () => {\n const ip = await ky.get('https://api.ip.pe.kr').text();\n\n return UNAUTH_API.getGeolocation({ ip });\n },\n select: ({ context }) => context,\n }),\n\n geocodingByCode: ({\n regionCode,\n subRegionCode,\n }: Partial[number]>) =>\n queryOptions({\n queryKey: [\n metaCodeQueryOptionsKeys.geoCodingByRegionCode,\n regionCode,\n subRegionCode,\n ],\n enabled: !!regionCode && !!subRegionCode,\n queryFn: () => {\n assert(regionCode, '지역코드가 없습니다.');\n assert(subRegionCode, '지역코드가 없습니다.');\n\n return UNAUTH_API.getGeocodingByRegionCode({\n regionCode,\n subRegionCode,\n });\n },\n }),\n};\n","import { redirect } from 'next/navigation';\n\ninterface RedirectDetailPageProps {\n returnCode?: number;\n pathname: string;\n}\n\nexport const redirectDetailPage = ({\n returnCode,\n pathname,\n}: RedirectDetailPageProps) => {\n switch (returnCode) {\n case 24040:\n return redirect(`${pathname}?toast=존재하지 않는 페이지입니다.`);\n case 20019:\n case 24041:\n return redirect(`${pathname}?toast=숨김 처리된 페이지입니다.`);\n }\n};\n","import { assert } from '@common/utils';\nimport { withTimeout } from 'es-toolkit';\n\nimport { ROUTES } from '@/constants';\nimport { redirectDetailPage } from '@/utils/redirectDetailPage';\n\nimport { GPT_PROMPT_TYPE, UNAUTH_API } from '.';\nimport { UnauthApi } from './v2';\n\nexport const getPolicyDetail = async (metaPolicyIdIdx: string) => {\n const { data } = await UnauthApi[\n 'get:/wello/v2/allows/policy/{meta_policy_id_idx}'\n ]({\n path: {\n meta_policy_id_idx: metaPolicyIdIdx,\n },\n });\n\n redirectDetailPage({\n pathname: ROUTES.HOME.pathname,\n returnCode: data?.return_code,\n });\n\n const context = data?.context;\n\n assert(context);\n\n let relatedInfo = '';\n if (context.apply_documents)\n relatedInfo += `○ 구비서류\\n - ${context.apply_documents\n ?.replaceAll('\\n', '\\n - ')\n .replaceAll('||', '\\n - ')}`;\n\n if (context.base_rule)\n relatedInfo += `${relatedInfo ? '\\n' : ''}○ 관계법령\\n - ${context.base_rule\n ?.replaceAll('\\n', '\\n - ')\n .replaceAll('||', '\\n - ')}`;\n\n if (!relatedInfo) relatedInfo = '- 관련 정보 없음';\n\n const [summaryString, keywordString] = await withTimeout(async () => {\n let summaryString = context.ai_summary;\n let keywordString = context.ai_seo_keyword;\n\n [summaryString, keywordString] = await Promise.all([\n summaryString\n ? summaryString\n : UNAUTH_API.updatePolicyAiInfo({\n metaPolicyIdIdx,\n requestBody: {\n gpt_prompt_type: GPT_PROMPT_TYPE.SUMMARY,\n },\n }).then((res) => res.context?.result),\n keywordString\n ? keywordString\n : UNAUTH_API.updatePolicyAiInfo({\n metaPolicyIdIdx,\n requestBody: {\n gpt_prompt_type: GPT_PROMPT_TYPE.KEYWORD,\n },\n }).then((res) => res.context?.result),\n ]);\n\n return [summaryString, keywordString];\n }, 3_000).catch(() => []);\n\n const aiSummaryList = summaryString\n ?.split('***')\n .map((s) => s.trim())\n .slice(1);\n\n const aiKeywordList = keywordString\n ?.split(' | ')\n .map((s) => s.trim())\n //! 한자 제외\n .filter((keyword) => !/[\\u4E00-\\u9FFF]/.test(keyword));\n\n return {\n id: context.id,\n idx: context.meta_policy_id_idx,\n policyName: context.policy_name,\n descAgeList: context.desc_age_list,\n dday: context.dday,\n policyApplyId: context.wello_policy_apply_id,\n provisionTypeList: context.provision_type_list,\n applyTypeList: context.apply_type_list,\n agencyLogo: context.agency_logo,\n agency: context.agency,\n dueDateBetween: context.due_date_between,\n supportBenefit: context.support_benefit,\n descTarget: context.desc_target,\n descSupport: context.desc_support,\n descProvision: context.desc_provision,\n relatedInfo,\n policyBannerTypeList: context.policy_banner_type_list,\n descApply: context.desc_apply,\n agencyTel: context.agency_tel,\n infoUrl: context.info_url,\n aiSummaryList,\n aiKeywordList,\n policyApplicationTypeCd: context.policy_application_type_cd,\n detailPolicyApplicationTypeCd: context.detail_policy_application_type_cd,\n };\n};\n\nexport type PolicyDetail = Awaited>;\n","import { createUuid } from '@common/utils';\nimport {\n infiniteQueryOptions,\n keepPreviousData,\n queryOptions,\n} from '@tanstack/react-query';\n\nimport { getPolicyDetail } from '@/api/getPolicyDetail';\nimport {\n AuthInfiniteQueryOptions,\n AuthQueryOptions,\n UnauthInfiniteQueryOptions,\n UnauthQueryOptions,\n} from '@/api/v2';\n\nexport const policyQueryOptionsKeys = {\n policyDetail: createUuid(),\n};\n\ninterface PolicyOptionsProps {\n id: number;\n isLogin: boolean | undefined;\n}\n\ninterface SearchOptionsProps {\n codeRegion?: string;\n codeSubRegion?: string;\n keyword?: string;\n isLogin?: boolean | undefined;\n descAgeList?: string[];\n codeProvisionTypeList?: string[];\n policySort?: 'LATEST' | 'POPULARITY';\n}\n\nexport interface PolicySearchItem {\n name: string;\n id: number;\n}\n\nexport const policyQueryOptions = {\n feedback: ({ id, isLogin }: PolicyOptionsProps) => {\n const options = isLogin\n ? AuthQueryOptions['get:/wello/v2/auth/policy/feedback/{policy_id}']\n : UnauthQueryOptions['get:/wello/v2/allows/policy/feedback/{policy_id}'];\n\n return queryOptions({\n ...options({\n path: {\n policy_id: id,\n },\n }),\n enabled: isLogin !== undefined,\n placeholderData: keepPreviousData,\n select: ({ context }) => ({\n readingCount: context?.reading_count ?? 0,\n hasNewComment: context?.new_comment_yn ?? false,\n isThumbUp: context?.like_yn ?? false,\n thumbUpCount: context?.like_count ?? 0,\n isBookmarked: context?.wishlist_yn,\n bookmarkCount: context?.wishlist_count ?? 0,\n commentCount: context?.comment_count ?? 0,\n likeCount: context?.like_count ?? 0,\n }),\n });\n },\n policyDetail: (idx: string) =>\n queryOptions({\n queryKey: [policyQueryOptionsKeys.policyDetail, idx],\n queryFn: () => getPolicyDetail(idx),\n }),\n search: ({\n isLogin,\n keyword,\n codeRegion,\n codeSubRegion,\n descAgeList,\n codeProvisionTypeList,\n policySort = 'LATEST',\n }: SearchOptionsProps) => {\n const INITIAL_PAGE = 1;\n const PAGE_SIZE = 20;\n\n const options = isLogin\n ? AuthInfiniteQueryOptions['get:/wello/v2/auth/policy']\n : UnauthInfiniteQueryOptions['get:/wello/v2/allows/policy'];\n\n return infiniteQueryOptions({\n ...options({\n query: {\n page: INITIAL_PAGE,\n size: PAGE_SIZE,\n codeProvisionTypeList,\n codeRegion,\n codeSubRegion,\n descAgeList,\n policySort,\n searchKeyword: keyword,\n },\n }),\n enabled: isLogin !== undefined,\n getNextPageParam: (lastPage) => {\n const { page: currentPage, total_count: totalCount } =\n lastPage.context ?? {};\n\n if (!totalCount || !currentPage) return;\n\n const nextPage = currentPage + 1;\n const totalPageCount = Math.ceil(totalCount / PAGE_SIZE);\n\n if (nextPage <= totalPageCount) return nextPage;\n },\n initialPageParam: INITIAL_PAGE,\n placeholderData: keepPreviousData,\n });\n },\n};\n","import { infiniteQueryOptions } from '@tanstack/react-query';\n\nimport { AuthInfiniteQueryOptions, UnauthInfiniteQueryOptions } from '@/api/v2';\n\ninterface PolicyInfoListOptionsProps {\n isLogin: boolean | undefined;\n keyword?: string;\n policySort?: 'LATEST' | 'POPULARITY';\n codeProvisionType?: string;\n}\n\nexport const policyInfoQueryOptions = {\n list: ({\n isLogin,\n policySort = 'LATEST',\n keyword,\n codeProvisionType,\n }: PolicyInfoListOptionsProps) => {\n const INITIAL_PAGE = 1;\n const PAGE_SIZE = 20;\n\n return infiniteQueryOptions({\n ...(isLogin\n ? AuthInfiniteQueryOptions['get:/wello/v2/auth/contents/best']\n : UnauthInfiniteQueryOptions['get:/wello/v2/allows/contents/best'])({\n query: {\n size: PAGE_SIZE,\n search_keyword: keyword,\n best_contents_sort: policySort,\n code_provision_type: codeProvisionType,\n page: INITIAL_PAGE,\n },\n }),\n getNextPageParam: ({ context }) => {\n const { total_count, page } = context ?? {};\n\n if (!total_count || !page) return;\n\n const nextPage = page + 1;\n const totalPageCount = Math.ceil(total_count / PAGE_SIZE);\n\n if (nextPage <= totalPageCount) return nextPage;\n },\n select: ({ pages }) =>\n pages.map(({ context }) => ({\n policyInfoList: context?.contents?.map(\n ({ provision_type, ...content }) => {\n const provisionTypeList: string[] = [];\n\n for (const key in provision_type) {\n const value = provision_type[key];\n if (value) provisionTypeList.push(value);\n }\n\n return { ...content, provisionTypeList };\n },\n ),\n totalCount: context?.total_count,\n })),\n initialPageParam: INITIAL_PAGE,\n });\n },\n};\n","import { createUuid,CustomError } from '@common/utils';\nimport { infiniteQueryOptions, queryOptions } from '@tanstack/react-query';\n\nimport { AUTH_API, UNAUTH_API } from '@/api';\n\nimport { EXCEPTED_HIDDEN_CODE } from './filter';\n\nexport const situationQueryKeys = {\n hospitalList: createUuid(),\n hospitalDetailLive: createUuid(),\n medicalPolicyInfinityList: createUuid(),\n emergencyRoomCountOfRegion: createUuid(),\n};\n\nexport const situationQueryOptions = {\n hospitalInfinityList: ({\n page,\n size,\n time,\n ...restParams\n }: Parameters[number]) =>\n infiniteQueryOptions({\n queryKey: [situationQueryKeys.hospitalList, page, size, time, restParams],\n queryFn: ({ pageParam }) =>\n UNAUTH_API.getEmergencyRoomList({\n page: pageParam,\n size,\n time: time === 24 ? 0 : time,\n ...restParams,\n }),\n getNextPageParam: (lastPage) => {\n const { page: currentPage, has_next } = lastPage.context ?? {};\n\n if (!has_next || !currentPage) return;\n\n return currentPage + 1;\n },\n initialPageParam: page,\n }),\n\n HospitalList: ({\n time,\n ...restParams\n }: Omit<\n Parameters[number],\n 'page' | 'size'\n >) => {\n return queryOptions({\n queryKey: [situationQueryKeys.hospitalList, restParams, time],\n queryFn: () =>\n UNAUTH_API.getEmergencyRoomList({\n ...restParams,\n time: time === 24 ? 0 : time,\n page: 1,\n size: 999,\n }),\n });\n },\n\n hospitalDetailLive: (emergencyRoomId: number) =>\n queryOptions({\n refetchInterval: 60_000,\n queryKey: [situationQueryKeys.hospitalDetailLive, emergencyRoomId],\n queryFn: () =>\n UNAUTH_API.getEmergencyRoomLive({\n emergencyRoomId,\n }),\n select: ({ context }) => ({\n roomCount: context?.hv36,\n babyRoomCount: context?.hv37,\n ambulanceUsable: context?.hvamyn,\n ctUsable: context?.hvctayn,\n mriUsable: context?.hvmriayn,\n doctorName: context?.hvdnm,\n }),\n }),\n\n medicalPolicyInfinityList: ({\n page,\n size,\n isLogin,\n ...restParams\n }: Parameters[number] & {\n isLogin?: boolean;\n }) =>\n infiniteQueryOptions({\n queryKey: [\n situationQueryKeys.medicalPolicyInfinityList,\n page,\n size,\n restParams,\n isLogin,\n ],\n queryFn: ({ pageParam }) => {\n const params = {\n page: pageParam,\n size,\n ...restParams,\n };\n\n return isLogin\n ? AUTH_API.getMedicalPolicyList(params)\n : UNAUTH_API.getMedicalPolicyList(params);\n },\n getNextPageParam: (lastPage) => {\n const { page: currentPage, total_count } = lastPage.context ?? {};\n\n if (!total_count || !currentPage)\n throw new CustomError({\n return_message: '페이지 수 데이터가 없습니다.',\n });\n\n const hasNextPage = currentPage < total_count / size;\n\n if (!hasNextPage) return;\n\n return currentPage + 1;\n },\n initialPageParam: page,\n enabled: isLogin !== undefined,\n }),\n emergencyRoomCountOfRegion: ({\n time,\n ...restParams\n }: Parameters[number]) =>\n queryOptions({\n queryFn: () =>\n UNAUTH_API.getEmergencyRoomCountOfRegion({\n ...restParams,\n time: time === 24 ? 0 : time,\n }),\n queryKey: [\n situationQueryKeys.emergencyRoomCountOfRegion,\n time,\n restParams,\n ],\n select: ({ context }) => {\n const sejongIndex = context?.contents.find(\n ({ code_sub_region }) =>\n code_sub_region === EXCEPTED_HIDDEN_CODE.REGION_SEJONG_ALL,\n );\n\n if (sejongIndex) {\n sejongIndex.sub_region = '세종시';\n }\n\n return context?.contents;\n },\n }),\n};\n","export * from './auth';\nexport * from './dpg';\nexport * from './family';\nexport * from './hometown-news';\nexport * from './meta-code';\nexport * from './policy';\nexport * from './policy-info';\nexport * from './situation';\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","import dayjs from 'dayjs';\n\nexport const extractDate = (text: string) => {\n const dateRegex = /(\\d{2})\\.(\\d{2})\\.(\\d{2})/;\n const match = text.match(dateRegex);\n\n if (!match) return;\n\n const [, year, month, day] = match;\n\n return dayjs(`20${year}-${month}-${day}`).format('YYYY-MM-DD');\n};\n","class AbortError extends Error {\n constructor(message = 'The operation was aborted') {\n super(message);\n this.name = 'AbortError';\n }\n}\n\nexport { AbortError };\n","import { AbortError } from '../error/AbortError.mjs';\n\nfunction delay(ms, { signal } = {}) {\n return new Promise((resolve, reject) => {\n const abortError = () => {\n reject(new AbortError());\n };\n const abortHandler = () => {\n clearTimeout(timeoutId);\n abortError();\n };\n if (signal?.aborted) {\n return abortError();\n }\n const timeoutId = setTimeout(() => {\n signal?.removeEventListener('abort', abortHandler);\n resolve();\n }, ms);\n signal?.addEventListener('abort', abortHandler, { once: true });\n });\n}\n\nexport { delay };\n","class TimeoutError extends Error {\n constructor(message = 'The operation was timed out') {\n super(message);\n this.name = 'TimeoutError';\n }\n}\n\nexport { TimeoutError };\n","import { delay } from './delay.mjs';\nimport { TimeoutError } from '../error/TimeoutError.mjs';\n\nasync function timeout(ms) {\n await delay(ms);\n throw new TimeoutError();\n}\n\nexport { timeout };\n","import { timeout } from './timeout.mjs';\n\nasync function withTimeout(run, ms) {\n return Promise.race([run(), timeout(ms)]);\n}\n\nexport { withTimeout };\n"],"names":["_path","_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","components_SvgChatbubbleTypingFill","createSvgComponent","props","react","createElement","xmlns","width","height","fill","viewBox","fillRule","d","clipRule","components_SvgVisible","BOOKMARK","COMMENT","PolicyCard","endAt","name","dday","benefit","bookmarkCount","commentCount","isBookmarked","isLoading","param","router","useCustomRouter","date","extractDate","undefined","href","ROUTES","POLICY_DETAIL","pathname","idIdx","bookmark","useBookmark","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsxs","CustomLink","className","cn","border","onClick","preventDefault","section","jsx","Skeleton","LazyImage","alt","src","imageUrl","div","Badge","h4","footer","p","time","dateTime","button","aria-label","title","type","push","SELECTOR","COMMENT_LIST_TOP","SvgChatbubbleTypingFill","assert","id","bookmarkType","BOOKMARK_TYPE","POLICY","contentId","idx","SvgBookmarkFill","OPTIMISTIC_QUERY_KEYS","AuthQueryKey","isQueryObject","obj","query","mutate","useMutation","mutationFn","AuthApi","body","content_id","content_type_cd","meta","reset","queryClient","useQueryClient","request","requestHaptic","useHandleApp","MESSAGE_KEYWORD","HAPTIC","useMemo","debouncedMutate","debounce","params","options","isLogin","useAuthStore","getState","LOGIN","withSearchParams","searchParams","redirect","location","bookmarkQueries","getQueriesData","predicate","some","isSameEndpointQuery","queryKey","forEach","key","data","isBaseKeyHasId","firstKey","StringKey","JSON","stringify","String","includes","hasObjectKey","context","newData","cloneDeep","wishlist_yn","wishlist_count","setQueryData","Array","isArray","contents","updatedContents","map","item","index","idKey","targetObjectList","result","findTargetObject","changeBookmarkCount","changeBookmarkYn","page","onError","authQueryOptionsKeys","socialLogin","createUuid","authQueryOptions","code","state","enabled","queryOptions","staleTime","queryFn","CustomError","return_message","redirectPath","parse","window","atob","access_token","ky","post","headers","URLSearchParams","redirect_uri","ENV","NEXT_PUBLIC_DOMAIN","concat","grant_type","client_id","NEXT_PUBLIC_KAKAO_CLIENT_ID","json","loginType","LOGIN_TYPE","KAKAO","socialLoginToken","API_ROUTES","NAVER_AUTH","NAVER","GOOGLE_AUTH","GOOGLE","id_token","APPLE_TOKEN","APPLE","dpgQueryOptionsKeys","checkEligibility","agreement","notice","loanInterest","deptReportList","deptReportDetail","getCIInfo","address","dpgQueryOptions","ciToken","DPG_API","postEligibilityCheck","requestBody","custCi","retry","select","isTarget","canRprYn","isPeriodicReport","preRgrRprtYn","getAgreement","financialInfo","finInfoAgmtCten","personalInfo","indvInfoAgmtCten","year","get","baseYear","toString","content","noticeCten","getLoanInterestList","Date","getFullYear","basDt","loanAmtSum","loanBlmtSum","loanIntAmtSum","nyRcpDutyApmtAmt","nyRcpOvdAmt","nyRcpOvdAdAmt","nyRcpAmtSum","loanList","getReportHistoryList","total","totalCount","rprYr","dbtrRprClssCd","dbtrRprDt","getReportHistory","rprFltNm","rprDutyAbtnYr","univGrdtYn","grdtDt","grdtUnivCd","grdtUnivNm","ovseRsdYn","rsdcPno","rsdcPnoAddr","rsdcDtalAddr","rsdcStsgLtnoDivCd","ctyCd","ctyNm","etcMttCten","mblTno","emailAddr","wkplEan","spoEan","spoFrnrYn","spoNm","spoOvseRsdYn","spoRsdcPno","spoRsdcPnoAddr","spoRsdcDtalAddr","spoRsdcStsgLtnoDivCd","spoCtyCd","spoCtyNm","spoWkplEan","indvInfoOferAgmtYn","finInfoOferAgmtYn","dbtrNrgrRprClssCd","careerList","spoCareerList","AUTH_API","getMemberVerification","accessToken","ci","getAddress","pnoAddr","addressDetail","dtalAddr","zonecode","pno","addressType","stsgLtnoDivCd","familyQueryOptions","list","queryKeys","familyList","getFamilyList","wello_member_family_list","total_policy_count","totalPolicyCount","hometownNewsQueryOptions","keyword","codeRegion","codeSubRegion","hometownNewsSort","infiniteQueryOptions","AuthInfiniteQueryOptions","UnauthInfiniteQueryOptions","size","code_region","code_sub_region","hometown_news_sort","search_keyword","pages","news","hometown_news_id","hometown_news_id_idx","hometown_news_name","daysAgo","days_ago","thumbnail","comment_count","dateText","published_at","summary","thumbUpCount","like_count","isThumbUp","like_yn","total_count","pageParams","getNextPageParam","lastPage","nextPage","Math","ceil","initialPageParam","feedback","AuthQueryOptions","UnauthQueryOptions","path","metaCodeQueryOptionsKeys","regionList","subRegionList","geolocation","geoCodingByRegionCode","UNAUTH_API","getMetaCode","metaCode","meta_code_all_list","meta_sub_code_list","label","value","regionCode","subRegionCode","getGeocodingByRegionCode","redirectDetailPage","returnCode","getPolicyDetail","metaPolicyIdIdx","UnauthApi","meta_policy_id_idx","HOME","return_code","relatedInfo","apply_documents","replaceAll","base_rule","summaryString","keywordString","withTimeout","ai_summary","ai_seo_keyword","Promise","all","updatePolicyAiInfo","gpt_prompt_type","GPT_PROMPT_TYPE","SUMMARY","then","res","KEYWORD","catch","aiSummaryList","split","s","trim","slice","aiKeywordList","filter","test","policyName","policy_name","descAgeList","desc_age_list","policyApplyId","wello_policy_apply_id","provisionTypeList","provision_type_list","applyTypeList","apply_type_list","agencyLogo","agency_logo","agency","dueDateBetween","due_date_between","supportBenefit","support_benefit","descTarget","desc_target","descSupport","desc_support","descProvision","desc_provision","policyBannerTypeList","policy_banner_type_list","descApply","desc_apply","agencyTel","agency_tel","infoUrl","info_url","policyApplicationTypeCd","policy_application_type_cd","detailPolicyApplicationTypeCd","detail_policy_application_type_cd","policyQueryOptionsKeys","policyDetail","policyQueryOptions","policy_id","placeholderData","keepPreviousData","readingCount","reading_count","hasNewComment","new_comment_yn","likeCount","search","codeProvisionTypeList","policySort","searchKeyword","currentPage","policyInfoQueryOptions","codeProvisionType","best_contents_sort","code_provision_type","policyInfoList","provision_type","situationQueryKeys","hospitalList","hospitalDetailLive","medicalPolicyInfinityList","emergencyRoomCountOfRegion","situationQueryOptions","hospitalInfinityList","restParams","pageParam","getEmergencyRoomList","has_next","HospitalList","refetchInterval","emergencyRoomId","getEmergencyRoomLive","roomCount","hv36","babyRoomCount","hv37","ambulanceUsable","hvamyn","ctUsable","hvctayn","mriUsable","hvmriayn","doctorName","hvdnm","getMedicalPolicyList","getEmergencyRoomCountOfRegion","sejongIndex","find","EXCEPTED_HIDDEN_CODE","REGION_SEJONG_ALL","sub_region","pointOptionsKeys","memberAccount","point","pointAttendance","invitedMemberCount","pointHistoryInfiniteList","bankList","pointBudget","pointPrice","myPointBudget","pointOptions","getMemberAccount","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","gcTime","getBankList","getListPointAttendance","attendanceList","attendance_list","checked","attendance_yn","count","attendance_count","month","getInvitedMemberCount","invited_member_count","activityType","getPointHistoryList","allPages","getPointBudget","weeklyBudget","budget_point","weeklyAccumulatedPoint","accumulated_point","benefitCount","benefit_count","weeklyRemainingPoint","remain_point","weeklyAccumulatedPointText","floor","toLocaleString","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","eventCombo","event_count","todayAccumulatedPoint","today_accumulated_point","totalWithdrawalCount","total_withdrawal_count","match","text","day","dayjs","format","AbortError","Error","constructor","message","delay","ms","signal","resolve","reject","abortError","abortHandler","clearTimeout","timeoutId","aborted","setTimeout","removeEventListener","addEventListener","once","TimeoutError","timeout","g","run","race"],"sourceRoot":""}