{"version":3,"file":"static/chunks/pages/promotions/big-promotion-606fec40e03fb28b.js","mappings":"AKACA,CAAAA,IAAI,CAAC,gBAAkB,CAAIA,IAAI,CAAC,gBAAkB,EAAK,EAAE,EAAEC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAElE,KAAK,CACJ,SAASC,CAAuB,CAAEC,CAAmB,CAAEC,CAAmB,CAAE,CAEnF,YAAY,CAAC,CAEM,CAACC,CAAC,CAACF,CAAmB,CAAC,CAG1CC,CAAmB,CAACE,CAAC,CAACH,CAAmB,CAAE,CACzC,OAAS,CAAE,UAAW,CAAE,OAAqBI,CAAO,CAAG,CACvD,OAAS,CAAE,UAAW,CAAE,OAAqBC,CAAa,CAAG,CAC9D,CAAC,KAGEC,CAA+B,CAAGL,CAAmB,CAAC,KAAK,CAAC,CAE5DM,CAAK,CAAGN,CAAmB,CAAC,KAAK,CAAC,CAElCO,CAAI,CAAGP,CAAmB,CAAC,KAAK,CAAC,CAEjCQ,CAAI,CAAGR,CAAmB,CAAC,KAAK,CAAC,CACjCS,CAAY,CAAgBT,CAAmB,CAACU,CAAC,CAACF,CAAI,CAAC,CAEvDG,CAAW,CAAGX,CAAmB,CAAC,KAAK,CAAC,CAExCY,CAAU,CAAGZ,CAAmB,CAAC,KAAK,CAAC,CAEvCa,CAAkB,CAAGb,CAAmB,CAAC,KAAK,CAAC,CAE/Cc,CAAK,CAAGd,CAAmB,CAAC,KAAK,CAAC,CAElCe,CAAiB,CAAGf,CAAmB,CAAC,IAAI,CAAC,CAE7CgB,CAAyB,CAAGhB,CAAmB,CAAC,KAAK,CAAC,CAEtDiB,CAAU,CAAGjB,CAAmB,CAAC,KAAK,CAAC,CAEvCkB,CAAK,CAAGlB,CAAmB,CAAC,KAAK,CAAC,CAElCmB,CAAqC,CAAGnB,CAAmB,CAAC,KAAK,CAAC,ULjClEoB,CAAA,YAAAD,CACE,CAAAE,EAAA,EAAAC,CAAC,EAADC,QACE,CAAO,CAAC,EAAAJ,CADV,CAAAE,EAAA,EAAAG,CAAA,EAEEC,OAAI,WAFN,CAGEC,IAAA,GAAQ,CACRC,QAAK,GAJP,CAKEC,KAAA,GAAU,CACVC,QAAA,GAAW,CACXC,WAAQ,IAPVC,MAAA,CAHsC,2EAYpCR,QAAW,IAAAJ,CAAX,CAAAE,EAAA,YAAuCW,GAAA,CAAI,EAAC,CAAAC,MAAA,CAdhC,0EAAG,CAc6B,UAA5CC,IAAA,aATF,EAFJ,EAeD,MAEYZ,CAAA,IAAAjB,CAAA,CAAA8B,CAAA,SAAAC,MAAA,gBAAAC,IAAA,UAAAC,MAAb,qBAIYd,CAAA,IAAAnB,CAAA,CAAA8B,CAAA,WAAAC,MAAA,gBAAAC,IAAA,UAAAC,MAAZ,oDCVEC,CAAe,WAAf,CAEA,IAAiBC,CAAjB,CAAAC,CAAA,EAAA9B,CAA+C,CAAA+B,SAA/C,IAAAC,KAAQ,CAAoBC,CAA5B,CAAAJ,CAA4B,CAAAK,OAA5B,CACMC,CAAc,CAAGN,CAAA,CAAAM,OAAQ,CAC7BC,CAAS,CAAG,GAAAzC,CAAZ,CAAA0C,OAAA,oBAC0C,CAD1C,GAMEC,cAAO,QAAe,CACvBA,cAAA,SAMCC,UAAA,GAAAA,SAAO,CAAAC,QAAP,EAAAD,SAAA,CAAAE,cAAA,wBAAAC,IAAA,CAAAH,SAAA,CAAAI,SAAA,EACK,SAAI,CACF,WAAPD,IAAA,CAAAH,SAAA,CAAAI,SAAA,EACK,cAEN,MAfA,CAkBH,EAAMV,CAAA,CAAyB,QAM7B,CACAG,MAAA,CAAAA,CAAA,CACAQ,UAAU,CARoC,GAAAjD,CAAA,CAAA0C,OAAA,iBAAAQ,CAAA,QAE9C,GACE,KAHJ,GAGIA,CAAAA,CAHJ,CAAAP,cAAA,cAAAO,KAAA,IAAAA,CAAA,CAAAA,CAAA,OAKA,EAAAV,CAAO,GAILW,QAAO,CAAEV,KAAA,GAAAA,CAAM,CAJjBW,OAAA,CAAAX,KAAA,GAAAA,CAAA,EAAAA,SAAA,GAAAA,CAAA,CA/BK,ECcSY,CAAiD,CAAK,SAAWC,CAAA,EAAG,OAAAC,KAAO,CAACD,CAAA,CAAJ,CAAAE,IAAJ,UAAAC,CAAA,EAApE,OAAAA,CAAA,CAAAC,IAAA,GAAhB,YAE0FC,CAAA,CAAAC,CAAA,MAAAC,CAAA,CAAAC,CAAA,CAA7CC,CAA6C,CAAAH,CAA7C,CAAAG,WAA6C,CAAAC,CAAA,CAAAJ,CAAA,CAAAI,OAAA,CACjFC,CAAP,IAAAjE,CAAA,CAAAkE,QAAA,MAAgBC,CAAA,CAAhBF,CAAA,IAAAG,CAAA,CAAAH,CAAA,IACAI,CAAA,IAAArE,CAAA,CAAAsE,MAAA,IAIAC,CAAA,CAAA9B,KAAA,GAFA+B,CAAA,GAAA/B,MAAA,EAEAG,SAAA,CAAAI,SAAA,CAAAyB,WAAA,GAAAC,QAAA,QAIIC,CAAA,IAAe1E,CAAE,CAAA2E,EAAA,KAAAjD,MAAA,CAlBvB,kBAkBuB,KAAAA,MAAA,CAAAoC,CAAA,oBAAAV,CAAA,EAFrBwB,eAAA,OAAwCC,CAAA,CAAxCH,CAAA,CAAAI,IAAiC,CAAjCC,CAAA,CAAAL,CAAA,CAAAM,KAAA,OAMsB,GACpBjF,CAAK,CAAAkF,eAAS,gBACZ,CAAAlB,CAAO,CACR,gBAGCmB,CAAA,YAEA,IAAMC,CAAA,CAAW,IAAGC,IAAI,KAAxBA,IAAA,CAAArB,CAAA,EAAAsB,OAAA,GA1BNC,KAAA,CA0BM,CACMC,CAAO,KAAUH,IAAA,CAAvBI,CAAA,CAAAL,CAAA,CAAAE,OAAA,GAAAE,CAAA,CAAAF,OAAA,GAGEE,CAAA,EAAAJ,CAAA,EAAAK,CAAA,KACArB,CAAA,GAAa,CAFfsB,aAGO,CAAArB,CAAA,CAAAsB,OAAA,GAENvB,CAAA,CAAAqB,CAAA,EAXH,QAgBAN,CAA0B,GAE1Bd,CAAO,CAAAsB,OAAA,CAAAC,MAAA,CAAAC,WAAA,CAAAV,CAAA,gBAAM,CAAb,OAAAO,aAAA,CAAArB,CAAA,CAAAsB,OAAA,EACC,CAEH,EAAA3B,CACE,MAAAnD,CACE,CAAAE,EAAA,EAAA+E,CAAC,EAAD7E,QACQ,CAAE,GAAAJ,CAAA,CAAAkF,EAAA,EAAAC,CAAA,EAAAC,MACN,CAAM,CACNC,MAAM,CAAE,MAFF,CAGNC,MAAM,CAAE,OAJZC,MAAA,IASInF,QACK,KAAAJ,CAAA,CAAAE,EAAE,EAAAD,CAAA,MAAAkE,CAAA,EAAAb,CAAA,QAAAtD,CAAA,CAAAkF,EAAA,EAAAM,CAAA,EAAAC,GACH,CAAe,CAAE,EAAA5F,CAAoB,CAAA6F,EAAA,GADpCC,eAAA,CAAAjC,CAAA,UADL,YAKE,OAAAtD,QAAA,KAAAJ,CAAA,CAAAE,EAAA,EAAA0F,CAAA,EALFxF,QAME,eAAC,CAAD,KAAAJ,CACE,CAAAkF,EAAA,EAAAW,CAAC,EAADzF,QAAA,KAAAJ,CAAA,CAAAE,EAAA,EAAA4F,CAAA,EADF1F,QAEE,UAAAJ,CACE,CAAAE,EAAA,EAAA6F,CAAC,EAAD3F,QACO,CAAE,GAAAJ,CAAO,CAADE,EAAA,EAAAJ,CAAC,CAADiE,EAAA,EACbiC,KAAA,CAAAC,MAAY,QAAAjD,CAAAA,CAAA,CAAAiB,MAAAA,CAAA,eAAAhB,CAAAA,CAAA,CAAAgB,CAAA,CAAAiC,8BAAA,GAAAjD,KAAA,IAAAA,CAAA,QAAAA,CAAA,CAAAkD,mBAAA,GAAAnD,KAAA,IAAAA,CAAA,CAAAA,CAAA,MAAAoD,UAAU,CAAE,CAAZC,QAAA,KAFd,CAHJ,CAQE,MAAArG,CAAA,CAAAE,EAAA,EAAA4F,CAAA,EARF1F,QAAA,KANF,CAgBE,OAAAJ,CAAA,CAAAE,EAAA,EAAAoG,CAAA,EAhBFlG,QAAA,2BATJ,MAFJ,EAmCD,MAEc6E,CAAA,IAAA/F,CAAA,CAAA8B,CAAA,aAAAC,MAAA,aAAf,2CAAAxB,CAAA,CAAA8G,CAAA,CAAAC,OAAA,oCAAA/G,CAAA,CAAAgH,CAAA,CAAAC,GAAA,wCAWcvB,CAAA,IAAAjG,CAAA,CAAA8B,CAAA,SAAAC,MAAA,aAGV,CAAG,mCAAH,UAAA0F,CAAA,MAAAvB,CAAgB,CAAAuB,CAAA,CAAAvB,MAAA,OAHN,GAAArF,CAAA,CAAd6G,EAAA,EAAAxB,CAAA,QAMuBI,CAAA,IAAAtG,CAAA,CAAA8B,CAAA,SAAAC,MAAA,gBAAAC,IAAA,UAAAC,MAAvB,qJAWWyE,CAAA,IAAA1G,CAAA,CAAA8B,CAAA,OAAAC,MAAA,YACA,EAAG,SAAH,UAAA4F,CAAA,EADA,OAAAC,CACqB,CAAAA,KAAO,CAD5BC,MAAA,CAAAC,UAAA,CAAX,sDAOoBnB,CAAA,IAAA3G,CAAA,CAAA8B,CAAA,SAAAC,MAAA,gBAAAC,IAAA,UAAAC,MAApB,uHAUe2E,CAAA,IAAA5G,CAAA,CAAA8B,CAAA,UAAAC,MAAA,YACJ,EAAG,SAAH,UAAAgG,CAAA,EADI,OAAAH,CACiB,CAAAA,KAAO,CADxBC,MAAA,CAAAC,UAAA,CAAf,wDAOkBjB,CAAA,IAAA7G,CAAA,CAAA8B,CAAA,UAAAC,MAAA,aAEP,CAAG,sBAAH,UAAAiG,CAAA,EAFO,OAAAJ,CAEc,CAAAA,KAAO,CAFrBC,MAAA,CAAAC,UAAA,CAAlB,4IAYiBV,CAAA,IAAApH,CAAA,CAAA8B,CAAA,OAAAC,MAAA,gBAAAC,IAAA,UAAAC,MAAjB,4GCrJoBgG,CAAA,UAAApE,CAAA,MAAAqE,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAxE,CAAA,CAAAmB,IAAA,CACXd,CAAA,IAAPjE,CAAA,CAAAkE,QAAA,MAAuBmE,CAAA,CAAvBpE,CAAA,IAAAqE,CAAA,CAAArE,CAAA,IACA9B,CAAA,IAAA9B,CAAA,CAAA+B,SAAA,IAMwBmG,CAAF,IAAA9H,CAAA,CAAA+H,CAAA,GAAUC,MAAA,CAf5B,EAAwB,CAW5BC,SAAA,CAVI,KAAc,CAUlB,EAEE3E,CAAA,CAFFwE,CAAA,CAAAxE,WAEE,CACA4E,CAAA,CAHFJ,CAAA,CAAAI,aAGE,CAHFC,CAAA,CAAAL,CAAA,CAAAK,cAAA,CASIjE,CAAQ,CAAE,GAAA1E,CAAA,CAAA2E,EAAA,KAAAjD,MAAA,CAnBhB,kBAmBgB,KAAAA,MAAA,CAAAoC,CAAA,GAAA8E,QAAA,CAAO,UAAP,SAAAT,CAAA,CAHd,GAAuCU,CAAvC,CAAAnE,CAAgC,CAAAI,IAAhC,CAAAgE,CAAA,CAAApE,CAAA,CAAAM,KAAA,CASM+D,CAAA,EADNZ,CAAAA,CAAe,CAAG,IAAsC,GAArCH,CAAAA,CAAD,CAAkBG,CAAC,GAAmBH,KAAxD,IAAwDA,CAAxD,CAAAA,CAAA,CAAAa,CAAA,GACwB,CAAaC,CAArC,GAAAV,CAAA,IAGE,KAAO,GAAPH,CAAAA,CAAO,CAAAE,CAAA,GAAAF,KAAC,IAADA,CAAC,MAAD,EAAAA,CAAA,wBAAO,GAAArH,CAAyB,CAAAE,EAAA,EAAAP,CAAA,CAAAyI,CAAA,EAAvCC,UAAA,CAAAd,CAAA,YACD,KAIC,CAAAjG,CAAO,CAAAgH,OAAP,WAAAhB,CAAAA,CAAA,CAAAC,CAAA,GAAAD,KAAA,IAAAA,CAAA,EAAAA,CAAA,CAAAiB,UAAA,EACD,gBAEDC,CAAA,CAAAjB,CAAgC,CAAAgB,UAAU,CAAlCE,CAAR,CAAAD,CAAQ,CAAAE,OAAR,IAAmBC,CAAA,CAAnBF,CAAA,CAAAE,KAAA,CAEAC,CACE,CAAAH,CAAA,CAAAI,EAAA,UAAA7I,CACE,CAAAkF,EAAA,EAAAlF,CAAA,CAAA8I,EAAA,EAAA1I,QAAe,KAAWJ,CAA1B,CAAAE,EAAA,EAAA4C,CAAA,EAAyCI,WAAS,CAAAA,CAAU,CAD9DC,OAEE,CAAAqF,CAAA,CAAArF,OAAA,EACE,IAAKnD,CADP,CAAAE,EAAA,EAAA6I,CAAA,EAEEJ,KAAA,CAAAA,CAAW,CACXzF,WAAO,CAAAsF,CAHT,CAAAK,EAAA,CAIEG,KAAA,CAAAR,CAAgB,CAAAQ,KAAA,CAChBC,cAAU,CAAAT,CALZ,CAAAS,cAAA,CAMEL,QAAA,CAAUA,CAAE,CAAAM,UACF,CAAE,CACVC,QAAA,CAAApB,CAAA,CARJqB,eAAA,CAhBJtB,MAAA,GAAAA,CAAA,CA0BM,CACAuB,OAAA,CAAS9B,CAXX,CAAAgB,UAAA,CAAAe,KAAA,CAYEnB,SAAA,CAAAA,CAAgB,CAAuBoB,cACrC,UAAAC,CAAA,EACD/B,CAAA,CAAA+B,CAAA,EAhBL,CADF,GApCF,GAgFAxK,CAAA,IAAAC,CAAA,CAAAkI,CAAA,CAE+CA,CACvC,CAAAsC,SAAQ,UAAdC,CAAA,EACA,IAAMV,CAAA,cAAc,CAEpBW,CACE,+BAAA3J,CACE,CAAAkF,EAAA,EAAAlF,CAAA,CAAA8I,EAAA,EAAA1I,QAAA,KACEJ,CAAA,CAAAkF,EAAA,EAAA5F,CAAA,IAAAc,QAAA,GAA0B,EAAAJ,CAAA,CAAAE,EAAA,WAA1BE,QAAW,CAAA4I,CADb,CAEE,CAAM,YAAN,KAAAhJ,CAAA,CAAAE,EAAA,UAAmBgB,IAAA,QAAS,CAF9B0I,OAGE,CAAAZ,CAAA,EAAM,IAAIhJ,CAAV,CAAAE,EAAA,UAAyBgB,IAAA,cAAS,CAHpC0I,OAIE,CAAAD,CAAA,EAAM,IAAA3J,CAAN,CAAAE,EAAA,UAA0B2J,QAAO,CAAE,WAJrCD,OAKE,CAAAZ,CAAA,EAAM,IAAAhJ,CAAN,CAAAE,EAAA,UAAgC2J,QAAO,CAAE,iBAL3CD,OAME,CAAAD,CAAA,EAAM,IAAA3J,CAAN,CAAAE,EAAA,UAAwB2J,QAAO,CAAC,SANlCD,OAOE,oDAAM,IAAA5J,CAAN,CAAAE,EAAA,UAAyB2J,QAAO,CAAC,UAPnCD,OAQE,YAAM,IAAA5J,CAAN,CAAAE,EAAA,UAA0B2J,QAAO,CAAC,WARpCD,OAAA,4EADF,CAWI,EAZN,EAAAF,CAAA,EAJF,OAqBiBX,CAAA,IAAA7J,CAAA,CAAA8B,CAAA,EAAAtB,CAAA,CAAAsB,CAAA,EAAAC,MAAH,aAAd,oBAAAxB,CAAA,CAAAgH,CAAA,CAAAC,GAAA,wDAAA/H,CAAA,CAAAmL,CAAA,CAAAjL,CAAA,EC1HA,CAAAkG,MAAA,CAAAgF,QAAA,CAAAhF,MAAA,CAAAgF,QAAA,MAAArL,IAAA,EACA,4BACA,UAAe,CACf,OAAAG,CAAA,QACA,CACA,EAKA,WAAAA,CAAA,EAAAA,CAAA,CAAAmL,CAAA,8DAAAnL,CAAA,CAAAA,CAAA,CAAAoL,CAAA,UAAAC,IAAA,CAAArL,CAAA,CAAAmL,CAAA","sources":["webpack://_N_E/./src/promotions/components/Video.tsx","webpack://_N_E/./src/promotions/hooks/usePlatformInfo.ts","webpack://_N_E/./src/promotions/components/DiscountTotal.tsx","webpack://_N_E/./src/pages/promotions/big-promotion/index.tsx","webpack://_N_E/?52af","webpack://_N_E/"],"sourcesContent":["import React from 'react';\nimport styled from '@emotion/styled';\n\nconst ATF_VIDEO_URL = 'https://prs.ohousecdn.com/apne2/any/big-promotion/v1-338178869465152.mp4';\nconst ATF_POSTER_URL = 'https://prs.ohousecdn.com/apne2/any/big-promotion/v1-338178465267840.jpg';\n\nexport function Video(): React.ReactElement {\n return (\n \n \n \n \n \n );\n}\n\nconst Wrapper = styled.div`\n overflow-x: clip;\n`;\n\nconst Player = styled.video`\n width: 100%;\n display: block;\n transform: scale(1.01);\n`;\n","import { useMemo } from 'react';\nimport { useRouter } from 'next/router';\n\nexport type AppOsType = 'iOS' | 'Android';\nexport type WebOsType = 'mWebIOS' | 'mWebAndroid' | 'Web';\nexport type OsType = AppOsType | WebOsType;\n\nexport interface UsePlatformInfoReturn {\n osType: OsType;\n appVersion: string | null;\n isMobile: boolean;\n isInApp: boolean;\n}\n\n/**\n * 유저의 플랫폼 정보를 반환합니다.\n */\nexport const usePlatformInfo = (): UsePlatformInfoReturn => {\n const router = useRouter();\n\n const { os_type: appOsType, version } = router.query;\n const osType: OsType = useMemo(() => {\n const rtn = appOsType as AppOsType;\n if (typeof window === 'undefined' || rtn) {\n return rtn;\n }\n\n if (sessionStorage['os_type']) {\n return sessionStorage['os_type'] as AppOsType;\n }\n\n if (\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) ||\n /iPhone|iPad|iPod/i.test(navigator.userAgent)\n ) {\n return 'mWebIOS';\n } else if (/Android/i.test(navigator.userAgent)) {\n return 'mWebAndroid';\n } else {\n return 'Web';\n }\n }, [appOsType]);\n\n const appVersion: string | null = useMemo(() => {\n if (typeof window === 'undefined' || version) return version;\n return sessionStorage['os_version'] ?? null;\n }, [version]);\n\n return {\n osType,\n appVersion,\n isMobile: osType !== 'Web',\n isInApp: osType === 'iOS' || osType === 'Android',\n };\n};\n","import { ReactElement, useLayoutEffect, useRef, useState } from 'react';\nimport useSWR from 'swr';\nimport NumberFlow from '@number-flow/react';\nimport styled from '@emotion/styled';\nimport { BREAK_POINT, MEDIA_QUERY } from '@bucketplace/design-system';\nimport { GridItemProps } from '@bucketplace/design-system/bds';\n\nimport { cssColumn } from 'styles/grids';\nimport { Video } from './Video';\nimport { usePlatformInfo } from 'promotions/hooks/usePlatformInfo';\n\nconst EVENT_API_PATH = '/api/promotions';\n\ninterface DiscountTotalProps {\n promotionId: number;\n startAt?: string;\n}\n\ninterface DiscountTotalResponse {\n blackFridayTotalDiscountAmount: {\n pollingIntervalMillis: number,\n totalDiscountAmount: string,\n };\n}\n\n// 시간 단위\nconst DISPLAY_HOUR = 9;\n\n// 시간을 밀리초 단위로 변환\nconst DISPLAY_TIME = DISPLAY_HOUR * 60 * 60 * 1000;\n\nconst fetcher = (url: string): Promise => fetch(url).then(res => res.json());\n\nexport function DiscountTotal({ promotionId, startAt }: DiscountTotalProps): ReactElement {\n const [timeGap, setTimeGap] = useState(-1);\n const interval = useRef();\n\n const { osType } = usePlatformInfo();\n\n const isMac = osType === 'Web' && navigator.userAgent.toLowerCase().includes('mac');\n\n const { data: discountTotalData, error: discountTotalError } = useSWR(\n `${EVENT_API_PATH}/${promotionId}/discount-total`, fetcher, {\n refreshInterval: 1000,\n }\n );\n\n useLayoutEffect(() => {\n if (!startAt) {\n return null;\n }\n\n const compareDisplayDateToDuration = (): void => {\n // 기획전 시작 시간 + n시간\n const startTime = new Date(new Date(startAt).getTime() + DISPLAY_TIME);\n const currentTime = new Date();\n const diff = startTime.getTime() - currentTime.getTime();\n\n if (currentTime >= startTime || diff <= 0) {\n setTimeGap(0);\n clearInterval(interval.current);\n } else {\n setTimeGap(diff);\n }\n };\n\n compareDisplayDateToDuration();\n\n interval.current = window.setInterval(compareDisplayDateToDuration, 1000);\n\n return () => clearInterval(interval.current);\n }, [startAt]);\n\n return (\n \n \n \n );\n}\n\nconst Container = styled.section`\n display: flex;\n flex-wrap: wrap;\n max-width: ${BREAK_POINT.desktop}px;\n margin: 0 auto;\n padding: 0 60px;\n ${MEDIA_QUERY.max('tablet', `\n padding: 0;\n `)}\n`;\n\nconst GridItem = styled.div<{ column: GridItemProps['column'] }>`\n position: relative;\n margin: 0 auto;\n ${({ column }) => cssColumn(column)};\n`;\n\nconst DiscountContainer = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n flex-direction: column;\n padding: 15px 12px 20px;\n font-family: Pretendard;\n font-weight: 500;\n z-index: 1;\n`;\n\nconst Title = styled.p`\n color: ${({ theme }) => theme.colors.background};\n font-size: 14px;\n font-weight: 700;\n line-height: 21px; \n`;\n\nconst PriceContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n align-items: center;\n gap: 1px;\n flex-shrink: 0;\n margin-bottom: 4px;\n`;\n\nconst PriceText = styled.span`\n color: ${({ theme }) => theme.colors.background};\n font-size: 26px;\n font-weight: 500;\n line-height: normal;\n`;\n\nconst PriceWrapper = styled.span`\n display: flex;\n color: ${({ theme }) => theme.colors.background};\n font-family: Fustat, sans-serif;\n font-size: 30px;\n font-weight: 600;\n letter-spacing: 0.3px;\n line-height: 0px;\n margin: -3px 0 -8px;\n padding: 1.17px 0;\n`;\n\nconst Description = styled.p`\n color: #66A7F2;\n text-align: center;\n font-family: Pretendard;\n font-size: 11px;\n font-weight: 500;\n line-height: 17px;\n`;\n","import React, { ReactElement, useState } from 'react';\nimport useSWR from 'swr';\nimport Head from 'next/head';\nimport { GetStaticPropsResult } from 'next';\nimport { useRouter } from 'next/router';\nimport styled from '@emotion/styled';\nimport { MEDIA_QUERY } from '@bucketplace/design-system';\n\nimport { PromotionResponse } from 'promotions/types';\nimport { PromotionsTemplate } from 'promotions/components/PromotionsTemplate';\nimport { Error } from 'components/Error';\nimport { API_GATEWAY_HOST } from 'common';\nimport { serverHttp } from 'common/http';\n\nimport { usePromotionQuery } from 'promotions/hooks/usePromotionQuery';\nimport { DiscountTotal } from 'promotions/components/DiscountTotal';\n\nconst isProd = process.env.APP_PROFILE === 'prod';\nconst PROMOTION_ID = isProd ? 14240 : 12431;\nconst EVENT_API_PATH = '/api/promotions';\n\nconst FestaSale = ({\n data: promotionData,\n}: {\n data: PromotionResponse,\n}): ReactElement => {\n const [isEditorLoaded, setIsEditorLoaded] = useState(false);\n const router = useRouter();\n\n const {\n promotionId,\n anchorSection,\n anchorTargetId,\n } = usePromotionQuery({ isProd, defaultId: PROMOTION_ID });\n\n const { data: csrPromotionData, error: promotionError } = useSWR(\n `${EVENT_API_PATH}/${promotionId}`,\n {\n isPaused: () => !!promotionData,\n }\n );\n\n promotionData = promotionData ?? csrPromotionData;\n const isLoading = !promotionData && !promotionError || !isEditorLoaded;\n const isInitialAnchor = anchorSection === 'true';\n\n if (promotionData?.['statusCode'] >= 400) {\n return ;\n }\n\n\n if (!router.isReady || !promotionData?.exhibition) {\n return null;\n }\n const promotion = promotionData.exhibition;\n const { units, id: detailId } = promotion.details[0];\n\n return (\n <>\n \n {\n setIsEditorLoaded(isLoaded);\n }}\n />\n \n );\n};\n\nexport const getStaticProps = async (): Promise> => {\n const isBuildPhase = process.env.NEXT_PHASE === 'phase-production-build';\n if (isBuildPhase) {\n return {\n props: {\n data: null,\n },\n revalidate: 1,\n };\n }\n\n const json = await serverHttp.get(`${API_GATEWAY_HOST}/exhibition/gateway/exhibition/user/v1/get?id=${PROMOTION_ID}`).json();\n\n return {\n props: {\n data: json,\n },\n revalidate: 1,\n };\n};\n\nexport default FestaSale;\n\nFestaSale.getLayout = function getLayout(page) {\n const title = '오늘의집 세일 페스타';\n const description = '최대 90%! 쓸 때 있는 할인!';\n\n return (\n <>\n \n { title }\n \n \n \n \n \n \n \n \n { page }\n \n );\n};\n\nconst Template = styled(PromotionsTemplate)`\n padding: 0 60px;\n ${MEDIA_QUERY.max('tablet', `\n padding: 0;\n `)}\n`;\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/promotions/big-promotion\",\n function () {\n return require(\"private-next-pages/promotions/big-promotion/index.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/promotions/big-promotion\"])\n });\n }\n ","(self[\"webpackChunk_N_E\"] = self[\"webpackChunk_N_E\"] || []).push([[379],{\n\n/***/ 61001:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"__N_SSG\": function() { return /* binding */ __N_SSG; },\n \"default\": function() { return /* binding */ big_promotion; }\n});\n\n// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+styled@11.13.0_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js\nvar emotion_styled_base_browser_esm = __webpack_require__(12851);\n// EXTERNAL MODULE: ./node_modules/.pnpm/react@18.3.1/node_modules/react/index.js\nvar react = __webpack_require__(75271);\n// EXTERNAL MODULE: ./node_modules/.pnpm/swr@1.3.0_react@18.3.1/node_modules/swr/dist/index.mjs\nvar dist = __webpack_require__(75182);\n// EXTERNAL MODULE: ./node_modules/.pnpm/next@12.3.4_@babel+core@7.26.0_react-dom@18.3.1_react@18.3.1_sass@1.80.4/node_modules/next/head.js\nvar head = __webpack_require__(27512);\nvar head_default = /*#__PURE__*/__webpack_require__.n(head);\n// EXTERNAL MODULE: ./node_modules/.pnpm/next@12.3.4_@babel+core@7.26.0_react-dom@18.3.1_react@18.3.1_sass@1.80.4/node_modules/next/router.js\nvar next_router = __webpack_require__(17966);\n// EXTERNAL MODULE: ./node_modules/.pnpm/@bucketplace+design-system@5.9.0-snapshot.1_@bucketplace+ui@1.1.0_@emotion+react@11.13.3_@emo_kg77ydgzcrrvpcndyvt2t3vqny/node_modules/@bucketplace/design-system/dist/esm/foundation.js\nvar foundation = __webpack_require__(90671);\n// EXTERNAL MODULE: ./src/promotions/components/PromotionsTemplate.tsx + 3 modules\nvar PromotionsTemplate = __webpack_require__(35076);\n// EXTERNAL MODULE: ./src/components/Error.tsx\nvar Error = __webpack_require__(42928);\n// EXTERNAL MODULE: ./src/promotions/hooks/usePromotionQuery.ts\nvar usePromotionQuery = __webpack_require__(3771);\n// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1/node_modules/@emotion/react/dist/emotion-react.browser.esm.js\nvar emotion_react_browser_esm = __webpack_require__(52814);\n// EXTERNAL MODULE: ./node_modules/.pnpm/@number-flow+react@0.3.0_react-dom@18.3.1_react@18.3.1/node_modules/@number-flow/react/dist/index.mjs + 1 modules\nvar react_dist = __webpack_require__(76935);\n// EXTERNAL MODULE: ./src/styles/grids.ts\nvar grids = __webpack_require__(81213);\n// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\nvar emotion_react_jsx_runtime_browser_esm = __webpack_require__(83128);\n;// CONCATENATED MODULE: ./src/promotions/components/Video.tsx\n\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n\n\nvar ATF_VIDEO_URL = 'https://prs.ohousecdn.com/apne2/any/big-promotion/v1-338178869465152.mp4';\nvar ATF_POSTER_URL = 'https://prs.ohousecdn.com/apne2/any/big-promotion/v1-338178465267840.jpg';\nfunction Video() {\n return (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Wrapper, {\n children: (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Player, {\n preload: \"metadata\",\n loop: true,\n autoPlay: true,\n muted: true,\n controls: false,\n playsInline: true,\n poster: ATF_POSTER_URL,\n children: (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(\"source\", {\n src: \"\".concat(ATF_VIDEO_URL, \"#t=0.5\"),\n type: \"video/mp4\"\n })\n })\n });\n}\n\nvar Wrapper = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"div\", true ? {\n target: \"e1e4hhkb1\"\n} : 0)( true ? {\n name: \"k2zp2x\",\n styles: \"overflow-x:clip\"\n} : 0);\n\nvar Player = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"video\", true ? {\n target: \"e1e4hhkb0\"\n} : 0)( true ? {\n name: \"rvmf3h\",\n styles: \"width:100%;display:block;transform:scale(1.01)\"\n} : 0);\n;// CONCATENATED MODULE: ./src/promotions/hooks/usePlatformInfo.ts\n\n\n\n/**\n * 유저의 플랫폼 정보를 반환합니다.\n */\nvar usePlatformInfo = function usePlatformInfo() {\n var router = (0,next_router.useRouter)();\n var _router$query = router.query,\n appOsType = _router$query.os_type,\n version = _router$query.version;\n var osType = (0,react.useMemo)(function () {\n var rtn = appOsType;\n\n if ( false || rtn) {\n return rtn;\n }\n\n if (sessionStorage['os_type']) {\n return sessionStorage['os_type'];\n }\n\n if (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 || /iPhone|iPad|iPod/i.test(navigator.userAgent)) {\n return 'mWebIOS';\n } else if (/Android/i.test(navigator.userAgent)) {\n return 'mWebAndroid';\n } else {\n return 'Web';\n }\n }, [appOsType]);\n var appVersion = (0,react.useMemo)(function () {\n var _sessionStorage$os_ve;\n\n if ( false || version) return version;\n return (_sessionStorage$os_ve = sessionStorage['os_version']) !== null && _sessionStorage$os_ve !== void 0 ? _sessionStorage$os_ve : null;\n }, [version]);\n return {\n osType: osType,\n appVersion: appVersion,\n isMobile: osType !== 'Web',\n isInApp: osType === 'iOS' || osType === 'Android'\n };\n};\n;// CONCATENATED MODULE: ./src/promotions/components/DiscountTotal.tsx\n\n\n\nfunction DiscountTotal_EMOTION_STRINGIFIED_CSS_ERROR_() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n\n\n\n\n\n\n\n\n\nvar EVENT_API_PATH = '/api/promotions';\n// 시간 단위\nvar DISPLAY_HOUR = 9; // 시간을 밀리초 단위로 변환\n\nvar DISPLAY_TIME = DISPLAY_HOUR * 60 * 60 * 1000;\n\nvar fetcher = function fetcher(url) {\n return fetch(url).then(function (res) {\n return res.json();\n });\n};\n\nfunction DiscountTotal(_ref) {\n var _discountTotalData$bl, _discountTotalData$bl2;\n\n var promotionId = _ref.promotionId,\n startAt = _ref.startAt;\n\n var _useState = (0,react.useState)(-1),\n timeGap = _useState[0],\n setTimeGap = _useState[1];\n\n var interval = (0,react.useRef)();\n\n var _usePlatformInfo = usePlatformInfo(),\n osType = _usePlatformInfo.osType;\n\n var isMac = osType === 'Web' && navigator.userAgent.toLowerCase().includes('mac');\n\n var _useSWR = (0,dist/* default */.ZP)(\"\".concat(EVENT_API_PATH, \"/\").concat(promotionId, \"/discount-total\"), fetcher, {\n refreshInterval: 1000\n }),\n discountTotalData = _useSWR.data,\n discountTotalError = _useSWR.error;\n\n (0,react.useLayoutEffect)(function () {\n if (!startAt) {\n return null;\n }\n\n var compareDisplayDateToDuration = function compareDisplayDateToDuration() {\n // 기획전 시작 시간 + n시간\n var startTime = new Date(new Date(startAt).getTime() + DISPLAY_TIME);\n var currentTime = new Date();\n var diff = startTime.getTime() - currentTime.getTime();\n\n if (currentTime >= startTime || diff <= 0) {\n setTimeGap(0);\n clearInterval(interval.current);\n } else {\n setTimeGap(diff);\n }\n };\n\n compareDisplayDateToDuration();\n interval.current = window.setInterval(compareDisplayDateToDuration, 1000);\n return function () {\n return clearInterval(interval.current);\n };\n }, [startAt]);\n return (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Container, {\n children: (0,emotion_react_jsx_runtime_browser_esm/* jsxs */.BX)(GridItem, {\n column: {\n mobile: 'full',\n tablet: 'full',\n laptop: 9\n },\n children: [(0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Video, {}), !discountTotalError && timeGap <= 0 && (0,emotion_react_jsx_runtime_browser_esm/* jsxs */.BX)(DiscountContainer, {\n css: /*#__PURE__*/(0,emotion_react_browser_esm/* css */.iv)({\n backgroundColor: isMac ? '#0581ee' : '#0775EB'\n }, true ? \"\" : 0, true ? \"\" : 0),\n children: [(0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Title, {\n children: \"\\uC624\\uC138\\uD398 \\uB204\\uC801 \\uD560\\uC778 \\uAE08\\uC561\"\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsxs */.BX)(PriceContainer, {\n children: [(0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(PriceText, {\n children: \"\\uCD1D\"\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(PriceWrapper, {\n children: (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(react_dist/* default */.ZP, {\n value: Number((_discountTotalData$bl = discountTotalData === null || discountTotalData === void 0 ? void 0 : (_discountTotalData$bl2 = discountTotalData.blackFridayTotalDiscountAmount) === null || _discountTotalData$bl2 === void 0 ? void 0 : _discountTotalData$bl2.totalDiscountAmount) !== null && _discountTotalData$bl !== void 0 ? _discountTotalData$bl : '0'),\n spinTiming: {\n duration: 300\n }\n })\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(PriceText, {\n children: \"\\uC6D0\"\n })]\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Description, {\n children: \"\\uD61C\\uD0DD \\uAE08\\uC561 \\uC720\\uC758 \\uC0AC\\uD56D\\uC740 \\uD558\\uB2E8\\uC744 \\uCC38\\uC870\\uD558\\uC138\\uC694.\"\n })]\n })]\n })\n });\n}\n\nvar Container = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"section\", true ? {\n target: \"e16nphk57\"\n} : 0)(\"display:flex;flex-wrap:wrap;max-width:\", foundation.B.desktop, \"px;margin:0 auto;padding:0 60px;\", foundation.M.max('tablet', \"\\n padding: 0;\\n \"), \";\" + ( true ? \"\" : 0));\n\nvar GridItem = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"div\", true ? {\n target: \"e16nphk56\"\n} : 0)(\"position:relative;margin:0 auto;\", function (_ref2) {\n var column = _ref2.column;\n return (0,grids/* cssColumn */.XG)(column);\n}, \";\" + ( true ? \"\" : 0));\n\nvar DiscountContainer = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"div\", true ? {\n target: \"e16nphk55\"\n} : 0)( true ? {\n name: \"hsczee\",\n styles: \"position:relative;display:flex;align-items:center;flex-direction:column;padding:15px 12px 20px;font-family:Pretendard;font-weight:500;z-index:1\"\n} : 0);\n\nvar Title = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"p\", true ? {\n target: \"e16nphk54\"\n} : 0)(\"color:\", function (_ref3) {\n var theme = _ref3.theme;\n return theme.colors.background;\n}, \";font-size:14px;font-weight:700;line-height:21px;\" + ( true ? \"\" : 0));\n\nvar PriceContainer = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"div\", true ? {\n target: \"e16nphk53\"\n} : 0)( true ? {\n name: \"nv75hh\",\n styles: \"display:flex;align-items:center;justify-content:center;align-items:center;gap:1px;flex-shrink:0;margin-bottom:4px\"\n} : 0);\n\nvar PriceText = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"span\", true ? {\n target: \"e16nphk52\"\n} : 0)(\"color:\", function (_ref4) {\n var theme = _ref4.theme;\n return theme.colors.background;\n}, \";font-size:26px;font-weight:500;line-height:normal;\" + ( true ? \"\" : 0));\n\nvar PriceWrapper = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"span\", true ? {\n target: \"e16nphk51\"\n} : 0)(\"display:flex;color:\", function (_ref5) {\n var theme = _ref5.theme;\n return theme.colors.background;\n}, \";font-family:Fustat,sans-serif;font-size:30px;font-weight:600;letter-spacing:0.3px;line-height:0px;margin:-3px 0 -8px;padding:1.17px 0;\" + ( true ? \"\" : 0));\n\nvar Description = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"p\", true ? {\n target: \"e16nphk50\"\n} : 0)( true ? {\n name: \"b2kgpt\",\n styles: \"color:#66A7F2;text-align:center;font-family:Pretendard;font-size:11px;font-weight:500;line-height:17px\"\n} : 0);\n;// CONCATENATED MODULE: ./src/pages/promotions/big-promotion/index.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar isProd = \"prod\" === 'prod';\nvar PROMOTION_ID = isProd ? 14240 : 12431;\nvar big_promotion_EVENT_API_PATH = '/api/promotions';\n\nvar FestaSale = function FestaSale(_ref) {\n var _promotionData, _promotionData2, _promotionData3;\n\n var promotionData = _ref.data;\n\n var _useState = (0,react.useState)(false),\n isEditorLoaded = _useState[0],\n setIsEditorLoaded = _useState[1];\n\n var router = (0,next_router.useRouter)();\n\n var _usePromotionQuery = (0,usePromotionQuery/* usePromotionQuery */.u)({\n isProd: isProd,\n defaultId: PROMOTION_ID\n }),\n promotionId = _usePromotionQuery.promotionId,\n anchorSection = _usePromotionQuery.anchorSection,\n anchorTargetId = _usePromotionQuery.anchorTargetId;\n\n var _useSWR = (0,dist/* default */.ZP)(\"\".concat(big_promotion_EVENT_API_PATH, \"/\").concat(promotionId), {\n isPaused: function isPaused() {\n return !!promotionData;\n }\n }),\n csrPromotionData = _useSWR.data,\n promotionError = _useSWR.error;\n\n promotionData = (_promotionData = promotionData) !== null && _promotionData !== void 0 ? _promotionData : csrPromotionData;\n var isLoading = !promotionData && !promotionError || !isEditorLoaded;\n var isInitialAnchor = anchorSection === 'true';\n\n if (((_promotionData2 = promotionData) === null || _promotionData2 === void 0 ? void 0 : _promotionData2['statusCode']) >= 400) {\n return (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Error/* Error */.j, {\n statusCode: promotionData['statusCode']\n });\n }\n\n if (!router.isReady || !((_promotionData3 = promotionData) !== null && _promotionData3 !== void 0 && _promotionData3.exhibition)) {\n return null;\n }\n\n var promotion = promotionData.exhibition;\n var _promotion$details$ = promotion.details[0],\n units = _promotion$details$.units,\n detailId = _promotion$details$.id;\n return (0,emotion_react_jsx_runtime_browser_esm/* jsxs */.BX)(emotion_react_jsx_runtime_browser_esm/* Fragment */.HY, {\n children: [(0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(DiscountTotal, {\n promotionId: promotionId,\n startAt: promotion.startAt\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Template, {\n units: units,\n promotionId: promotion.id,\n title: promotion.title,\n coverImageUrls: promotion.coverImageUrls,\n detailId: detailId,\n anchorInfo: {\n targetId: anchorTargetId,\n isInitialAnchor: isInitialAnchor\n },\n endDate: promotionData.exhibition.endAt,\n isLoading: isLoading,\n onViewerLoaded: function onViewerLoaded(isLoaded) {\n setIsEditorLoaded(isLoaded);\n }\n })]\n });\n};\n\nvar __N_SSG = true;\n/* harmony default export */ var big_promotion = (FestaSale);\n\nFestaSale.getLayout = function getLayout(page) {\n var title = '오늘의집 세일 페스타';\n var description = '최대 90%! 쓸 때 있는 할인!';\n return (0,emotion_react_jsx_runtime_browser_esm/* jsxs */.BX)(emotion_react_jsx_runtime_browser_esm/* Fragment */.HY, {\n children: [(0,emotion_react_jsx_runtime_browser_esm/* jsxs */.BX)((head_default()), {\n children: [(0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(\"title\", {\n children: title\n }, \"head-title\"), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(\"meta\", {\n name: \"title\",\n content: title\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(\"meta\", {\n name: \"description\",\n content: description\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(\"meta\", {\n property: \"og:title\",\n content: title\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(\"meta\", {\n property: \"og:description\",\n content: description\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(\"meta\", {\n property: \"og:url\",\n content: \"https://events.ohou.se/promotions/big-promotion\"\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(\"meta\", {\n property: \"og:type\",\n content: \"website\"\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(\"meta\", {\n property: \"og:image\",\n content: \"https://prs.ohousecdn.com/apne2/any/big-promotion/v1-338179607715840.png\"\n })]\n }), page]\n });\n};\n\nvar Template = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(PromotionsTemplate/* PromotionsTemplate */.Z, true ? {\n target: \"e1vx56i10\"\n} : 0)(\"padding:0 60px;\", foundation.M.max('tablet', \"\\n padding: 0;\\n \"), \";\" + ( true ? \"\" : 0));\n\n/***/ }),\n\n/***/ 91233:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/promotions/big-promotion\",\n function () {\n return __webpack_require__(61001);\n }\n ]);\n if(false) {}\n \n\n/***/ })\n\n},\n/******/ function(__webpack_require__) { // webpackRuntimeModules\n/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }\n/******/ __webpack_require__.O(0, [813,707,465,433,935,186,76,774,888,179], function() { return __webpack_exec__(91233); });\n/******/ var __webpack_exports__ = __webpack_require__.O();\n/******/ _N_E = __webpack_exports__;\n/******/ }\n]);"],"names":["self","push","__unused_webpack_module","__webpack_exports__","__webpack_require__","r","d","__N_SSG","big_promotion","emotion_styled_base_browser_esm","react","dist","head","head_default","n","next_router","foundation","PromotionsTemplate","Error","usePromotionQuery","emotion_react_browser_esm","react_dist","grids","emotion_react_jsx_runtime_browser_esm","Video","tZ","Wrapper","children","Player","preload","loop","autoPlay","muted","controls","playsInline","poster","src","concat","type","Z","target","name","styles","usePlatformInfo","_router$query","router","useRouter","query","appOsType","os_type","version","osType","useMemo","sessionStorage","navigator","platform","maxTouchPoints","test","userAgent","appVersion","_sessionStorage$os_ve","isMobile","isInApp","fetcher","url","fetch","then","res","json","DiscountTotal","_ref","_discountTotalData$bl","_discountTotalData$bl2","promotionId","startAt","_useState","useState","timeGap","setTimeGap","interval","useRef","isMac","_usePlatformInfo","toLowerCase","includes","_useSWR","ZP","refreshInterval","discountTotalData","data","discountTotalError","error","useLayoutEffect","compareDisplayDateToDuration","startTime","Date","getTime","DISPLAY_HOUR","currentTime","diff","clearInterval","current","window","setInterval","Container","BX","GridItem","column","mobile","tablet","laptop","DiscountContainer","css","iv","backgroundColor","Title","PriceContainer","PriceText","PriceWrapper","value","Number","blackFridayTotalDiscountAmount","totalDiscountAmount","spinTiming","duration","Description","B","desktop","M","max","_ref2","XG","_ref3","theme","colors","background","_ref4","_ref5","FestaSale","_promotionData","_promotionData2","_promotionData3","promotionData","isEditorLoaded","setIsEditorLoaded","_usePromotionQuery","u","isProd","defaultId","anchorSection","anchorTargetId","isPaused","csrPromotionData","promotionError","isLoading","j","statusCode","isReady","exhibition","promotion","_promotion$details$","details","units","detailId","id","HY","Template","title","coverImageUrls","anchorInfo","targetId","isInitialAnchor","endDate","endAt","onViewerLoaded","isLoaded","getLayout","page","description","content","property","__unused_webpack_exports","__NEXT_P","O","s","_N_E"],"sourceRoot":""}