{"version":3,"file":"static/js/4517.18294182.chunk.js","mappings":"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","sources":["client/components/ResponsiveBgImage.js","client/fever_form/style.js","client/hooks/useGameFormReduxData.js","client/styles/common.js","client/utils/generatePictureSourceData.js","components/Emphasize.js","editor/components/Tooltip.js","editor/components/Upload/useSingleFileDropzoneProps.js","editor/game_checkIn/components/lotteryTaskCarousel/BtnImgUpload.js","editor/game_checkIn/components/lotteryTaskCarousel/LotteryTaskCard.js","editor/game_checkIn/components/lotteryTaskCarousel/getCarouselProps.js","editor/game_checkIn/components/lotteryTaskCarousel/LotteryTaskCarousel.js","hooks/useLocalStorage.js","hooks/useShareLink.js","utils/delay.js","utils/url.js","utils/variantStyle.js"],"sourcesContent":["import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { css } from '@emotion/core';\n\nimport { stylePropType } from 'utils/propTypes';\nimport generatePictureSourceData from 'client/utils/generatePictureSourceData';\n\nexport default function ResponsiveBgImage({ src = '', style }) {\n const sourceDatas = useMemo(() => generatePictureSourceData(src), [src]);\n const mediaStyles = sourceDatas.reduceRight(\n (str, data) => (str += `@media ${data.media} { background-image: url(${data.srcSet});} `),\n ''\n );\n return (\n \n );\n}\n\nResponsiveBgImage.propTypes = {\n src: PropTypes.string,\n style: stylePropType\n};\n\nconst containerStyle = css`\n width: 100%;\n height: 100%;\n background-repeat: no-repeat;\n background-position: center center;\n background-size: cover;\n`;\n","import { below } from 'utils/breakpoint';\n\nexport const generateMuiTextFieldCustomColorStyle = color => `\n color: ${color};\n .MuiInputBase-root, .MuiIconButton-root {\n font-size: inherit;\n color: inherit;\n }\n .MuiInput-underline:before,\n .MuiInput-underline:after,\n .MuiInput-underline:hover:not(.Mui-disabled):before {\n border-bottom-color: inherit;\n }\n .MuiInput-underline.Mui-error:after {\n border-bottom-color: #f44336;\n }\n .MuiInputBase-input.MuiInput-input {\n text-align: inherit;\n }\n`;\n\nexport const generateMuiSelectCustomColorStyle = color => `\n color: ${color};\n &.MuiInputBase-root {\n font-size: inherit;\n }\n &.MuiInput-underline:before,\n &.MuiInput-underline:after,\n &.MuiInput-underline:hover:not(.Mui-disabled):before {\n border-bottom-color: inherit;\n }\n & .MuiSelect-root.Mui-disabled {\n opacity: 0.5;\n }\n & .MuiSvgIcon-root.MuiSelect-icon {\n color: inherit;\n }\n`;\n\nexport const sectionWrapperStyle = `\n padding: 32px 48px 16px;\n ${below('sm')} {\n padding: 32px 16px 16px;\n }\n`;\n\nexport const textInputStyle = `\n line-height: 1.1875;\n padding: 7px 0;\n letter-spacing: 0.5px;\n`;\n\nexport const errorHintStyle = `\n text-align: right;\n font-size: 0.8125rem;\n line-height: 2rem;\n transition: all .1s linear;\n opacity: 0;\n color: #D52027;\n margin-left: 5px;\n`;\n\nexport const shortWidthSectionErrorHintStyle = `\n ${errorHintStyle}\n ${below('sm')} {\n float: right;\n }\n`;\n\nexport const fullWidthSectionErrorHintStyle = `\n ${errorHintStyle}\n float: right;\n`;\n\nexport function getFeverFormTextAlign(alignType = 0) {\n return {\n 0: 'left',\n 1: 'center',\n 2: 'right'\n }[alignType];\n}\n","import { useSelector } from 'react-redux';\n\nimport { IS_EDITOR_MODE } from 'config/envVariable';\n\nexport default function useGameFormReduxData() {\n const getter = IS_EDITOR_MODE ? s => s : s => s.gameFormBased;\n const getLotteryParticipant = IS_EDITOR_MODE ? s => s.lotteries : s => s;\n const pages = useSelector(s => getter(s).pages);\n const sections = useSelector(s => getter(s).sections);\n const fields = useSelector(s => getter(s).fields);\n const options = useSelector(s => getter(s).options);\n const settings = useSelector(s => getter(s).settings);\n const lotteryParticipant = useSelector(s => getLotteryParticipant(s).lotteryParticipant);\n return { pages, sections, fields, options, settings, lotteryParticipant };\n}\n","import { preventMarginCollapse } from 'styles/common';\nimport { below } from 'utils/breakpoint';\nimport { getColorRGBA } from 'utils/colorConvert';\nimport { IS_IFRAME_MODE, IFRAME_MODE_MIN_HEIGHT, POWER_BY_HEIGHT } from 'config/envVariable';\nimport { defaultThemeSetting } from 'config/promoDefaultSettingValue';\n\nexport const clientBodyStyle = !IS_IFRAME_MODE ? 'height: 100%; overflow: auto;' : '';\nexport const appContainerStyle = `\n max-width: 720px;\n min-height: calc(\n ${IS_IFRAME_MODE ? `${IFRAME_MODE_MIN_HEIGHT}px` : '100%'} - ${POWER_BY_HEIGHT}px\n );\n margin: 0 auto;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\nexport const clientSmallWrapperStyle = `\n max-width: 720px;\n padding: 32px 0;\n\n @media only screen and (max-width: 720px) {\n width: 100%;\n padding: 16px 8px;\n }\n`;\nexport const clientBigWrapperStyle = `\n max-width: 960px;\n padding: 32px 4px;\n\n @media only screen and (max-width: 767px) {\n width: 100%;\n padding: 16px 8px;\n }\n`;\nexport const routeContainerStyle = `\n width: 100%;\n border-radius: 8px;\n`;\n\nexport const shadowLightStyle = `\n box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2), 0 2px 1px -1px rgba(0, 0, 0, 0.12), 0 1px 1px 0 rgba(0, 0, 0, 0.14);\n`;\nexport const shadowDarkStyle = `\n box-shadow: 0 1px 8px 0 rgba(0, 0, 0, 0.2), 0 3px 3px -2px rgba(0, 0, 0, 0.12), 0 3px 4px 0 rgba(0, 0, 0, 0.14);\n`;\n\nconst loadingBgImg = `data:image/svg+xml;base64,PCEtLSBCeSBTYW0gSGVyYmVydCAoQHNoZXJiKSwgZm9yIGV2ZXJ5b25lLiBNb3JlIEAgaHR0cDovL2dvby5nbC83QUp6YkwgLS0+Cjxzdmcgd2lkdGg9IjQ0IiBoZWlnaHQ9IjQ0IiB2aWV3Qm94PSIwIDAgNDQgNDQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4KICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iciIKICAgICAgICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIxLjhzIgogICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIKICAgICAgICAgICAgICAgIGNhbGNNb2RlPSJzcGxpbmUiCiAgICAgICAgICAgICAgICBrZXlUaW1lcz0iMDsgMSIKICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIgogICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InN0cm9rZS1vcGFjaXR5IgogICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuOHMiCiAgICAgICAgICAgICAgICB2YWx1ZXM9IjE7IDAiCiAgICAgICAgICAgICAgICBjYWxjTW9kZT0ic3BsaW5lIgogICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiCiAgICAgICAgICAgICAgICBrZXlTcGxpbmVzPSIwLjMsIDAuNjEsIDAuMzU1LCAxIgogICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgPC9jaXJjbGU+CiAgICAgICAgPGNpcmNsZSBjeD0iMjIiIGN5PSIyMiIgcj0iMSI+CiAgICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InIiCiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS44cyIKICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMjAiCiAgICAgICAgICAgICAgICBjYWxjTW9kZT0ic3BsaW5lIgogICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiCiAgICAgICAgICAgICAgICBrZXlTcGxpbmVzPSIwLjE2NSwgMC44NCwgMC40NCwgMSIKICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIKICAgICAgICAgICAgICAgIGJlZ2luPSItMC45cyIgZHVyPSIxLjhzIgogICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAwIgogICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIKICAgICAgICAgICAgICAgIGtleVRpbWVzPSIwOyAxIgogICAgICAgICAgICAgICAga2V5U3BsaW5lcz0iMC4zLCAwLjYxLCAwLjM1NSwgMSIKICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgIDwvY2lyY2xlPgogICAgPC9nPgo8L3N2Zz4=`;\nexport const loadingBgImgStyle = `rgb(205, 205, 205) url('${loadingBgImg}') no-repeat center`;\n\nexport function convertSettingTheme2ThemeStyle(settingTheme) {\n const { bgColor: contentBgColor, btnColor, textColor } = settingTheme ?? defaultThemeSetting;\n const themeStyle = {\n contentBgColor,\n btnColor,\n textColor\n };\n return themeStyle;\n}\nexport function convertSettingStyle2ComponentStyle(settingStyle = {}) {\n const {\n contentBgType,\n contentBgColor,\n contentAlign,\n contentBorderRadius,\n buttonBgColor,\n buttonTextColor,\n buttonSize,\n optionBgColor,\n optionTextColor,\n titleColor,\n descColor,\n answerColor\n } = settingStyle;\n return {\n contentBgType,\n contentBgColor,\n isContentBgColorTransparent: (contentBgColor && getColorRGBA(contentBgColor).alpha) === 0,\n contentAlign,\n contentBorderRadius,\n titleColor,\n descColor,\n answerColor,\n optionColor: optionBgColor,\n optionLabelColor: optionTextColor,\n buttonColor: buttonBgColor,\n buttonLabelColor: buttonTextColor,\n buttonSize\n };\n}\nexport function convertSettingStyle2FormBasedEditorStyle(settingStyle = {}) {\n const {\n optionBgColor,\n optionTextColor,\n titleColor,\n descColor,\n bgType,\n bgColor,\n bgImgUrl,\n contentBgColor,\n contentAlign,\n buttonBgColor,\n buttonTextColor,\n buttonSize\n } = settingStyle;\n return {\n titleColor,\n descColor,\n optionTextColor,\n optionBgColor,\n background: {\n type: bgType,\n color: bgColor,\n imageUrl: bgImgUrl\n },\n contentBackground: {\n type: 1,\n color: contentBgColor\n },\n contentAlign,\n btnTextColor: buttonTextColor,\n btnColor: buttonBgColor,\n btnSize: buttonSize,\n isContentBgTransparent: (contentBgColor && getColorRGBA(contentBgColor).alpha) === 0\n };\n}\n\nexport const resultHeaderContainerStyle = themeStyle =>\n `\n ${preventMarginCollapse}\n background-color: ${themeStyle.contentBgColor};\n border-radius: 8px 8px 0 0;\n padding: 0 16px;\n ${below('sm')} {\n padding: 0 8px;\n }\n \n `;\nexport const resultHeaderBtnWrapperStyle = `\n padding: 16px 0;\n ${below('sm')} {\n padding: 8px 0;\n }\n`;\n\nexport const resultFooterContainerStyle = themeStyle =>\n `\n ${preventMarginCollapse}\n width: 100%;\n background-color: ${themeStyle.contentBgColor}; \n padding-bottom: 32px;\n\n `;\n","import { convertProxyImgUrl } from 'client/utils/getProxyImgUrl';\n\nconst originalFileFirstPathName = 'picture-origin';\nconst compressedFileFirstPathName = 'picture-compressed';\nconst compressedSizes = [\n { size: 800, type: 'md', imgSize: 768 },\n { size: 1200, type: 'lg', imgSize: 1280 }\n];\n\nexport default function generatePictureSourceData(src) {\n const re = /(https:\\/\\/.+?)\\/(.+?)\\/(.+)\\/(.+)\\.(\\w+)/i;\n const parsed = re.exec(src);\n if (parsed) {\n const [, origin, firstPath, restPath, filename, ext] = parsed;\n if (firstPath === originalFileFirstPathName) {\n const sources = compressedSizes.map(({ size, type }) => ({\n srcSet: `${origin}/${compressedFileFirstPathName}/${restPath}/${filename}-${type}.${ext}`,\n media: `(max-width: ${size}px)`\n }));\n return sources;\n }\n }\n return [];\n}\n\nexport function generatePictureSourceDataByProxyImage(src) {\n if (!src) return [];\n const re = /(https:\\/\\/.+?)\\/(.+?)\\/(.+)\\/(.+)\\.(\\w+)/i;\n const parsed = re.exec(src);\n const ext = parsed[parsed.length - 1];\n const sources = compressedSizes.map(({ size, imgSize }) => ({\n // svg 不支援縮圖功能,所以用全圖\n srcSet:\n ext === 'svg'\n ? src\n : convertProxyImgUrl({\n url: src,\n resizeWidth: imgSize\n }),\n media: `(max-width: ${size}px)`\n }));\n return sources;\n}\n","import React from 'react';\n\nexport default function Emphasize({ children, color = '#ff004e', bold = false }) {\n return {children};\n}\n","import Tooltip from '@material-ui/core/Tooltip';\nimport { withStyles } from '@material-ui/core/styles';\n\nexport default withStyles(({ style }) => ({\n tooltip: {\n padding: `12px`,\n backgroundColor: `#484848`,\n ...style\n }\n}))(Tooltip);\n","import { useDropzone } from 'react-dropzone';\nimport i18n from 'i18next';\n\nfunction useSingleFileDropzoneProps({\n enableBase64,\n config = {},\n onDropSuccess = () => {},\n onDropError = () => {}\n} = {}) {\n async function onDropAccepted(acceptedFiles) {\n const file = acceptedFiles[0];\n let resp = { file };\n if (enableBase64) {\n resp.base64 = await getBase64(file);\n }\n onDropSuccess(resp);\n }\n async function onDropRejected(acceptedFiles) {\n const file = acceptedFiles[0];\n const { size, type } = file;\n if (size > dropzoneConfig.maxSize) {\n onDropError(\n i18n.t('notify.file_drop.failed.size', {\n size: dropzoneConfig.maxSize / 1000 / 1000\n })\n );\n } else if (dropzoneConfig.accept.indexOf(String(type).toLowerCase()) === -1) {\n onDropError(\n i18n.t('notify.file_drop.failed.type', {\n types: dropzoneConfig.accept\n .split(',')\n .map(e => e.split('/')[1])\n .join(', ')\n .toUpperCase()\n })\n );\n }\n }\n\n const dropzoneConfig = {\n ...generalConfig,\n ...config\n };\n const { getRootProps, getInputProps, open, inputRef } = useDropzone({\n onDropAccepted,\n onDropRejected,\n ...dropzoneConfig\n });\n\n return { getRootProps, getInputProps, open, inputRef };\n}\n\nexport default useSingleFileDropzoneProps;\n\nconst generalConfig = {\n multiple: false,\n maxSize: 3000000,\n accept: 'image/png,image/gif,image/jpg,image/jpeg'\n};\n\nfunction getBase64(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = error => reject(error);\n });\n}\n","import React from 'react';\nimport i18n from 'i18next';\nimport { css } from '@emotion/core';\nimport Button from '@material-ui/core/Button';\nimport AddCircleIcon from '@material-ui/icons/AddCircle';\n\nimport Tooltip from 'editor/components/Tooltip';\nimport useSingleFileDropzoneProps from 'editor/components/Upload/useSingleFileDropzoneProps';\n\nexport default function BtnImgUpload({\n onDropSuccess = () => {},\n onDropError = () => {},\n firstView = false\n}) {\n const { getRootProps, getInputProps } = useSingleFileDropzoneProps({\n enableBase64: true,\n onDropSuccess,\n onDropError\n });\n\n return (\n \n }\n {...getRootProps()}\n >\n {i18n.t('btn.change_img')}\n {!firstView && }\n \n \n );\n}\n\nconst btnStyle = css`\n z-index: 3;\n position: absolute;\n top: 8px;\n left: 50%;\n transform: translate(-50%, 0);\n opacity: 0;\n transition: all 0.2s linear;\n padding: 8px 24px;\n color: #333;\n background-color: #fff;\n border-radius: 8px;\n white-space: nowrap;\n`;\n","import React, { useState, useRef, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useInView } from 'react-intersection-observer';\nimport Lottie from 'lottie-react';\nimport { css } from '@emotion/core';\nimport Typography from '@material-ui/core/Typography';\nimport TextField from '@material-ui/core/TextField';\nimport Skeleton from '@material-ui/lab/Skeleton';\n\nimport {\n isLotteryHasAnimation,\n lotteryInstantTypes,\n lotteryParticipantTypes,\n lotteryAdminTypes\n} from 'config/promoLotteryTypes';\nimport { gameTypes } from 'config/promoGameTypes';\nimport { feverZoomScale } from 'styles/keyframes';\nimport { generateMuiTextFieldCustomColorStyle } from 'client/fever_form/style';\nimport animationDataCorrect from 'editor/game_checkIn/components/lotteryTaskCarousel/lottieFiles/correct.json';\nimport animationDataNotCorrect from 'editor/game_checkIn/components/lotteryTaskCarousel/lottieFiles/not-correct.json';\nimport animationDataLock from 'editor/game_checkIn/components/lotteryTaskCarousel/lottieFiles/lock.json';\n\nimport ButtonWithLoadingEffect from 'Mui/ButtonWithLoadingEffect';\nimport BtnImgUpload from 'editor/game_checkIn/components/lotteryTaskCarousel/BtnImgUpload';\nimport ResponsiveBgImage from 'client/components/ResponsiveBgImage';\nimport RatioContainerStyle from 'components/RatioContainerStyle';\nimport { btnVariants } from 'styles/common';\n\nexport default function LotteryTaskCard({\n gameType,\n type,\n status,\n title,\n imgSrc,\n checkInTargetQuantity,\n prizeLeftQuantity,\n prizeTotalQuantity,\n componentStyle = {},\n isEditorMode,\n isIniting,\n isLazyLoading,\n onImgDrop,\n onImgDropError,\n onLazyLoaded = () => {},\n onTitleChange = () => {},\n onButtonClick = async () => {},\n firstView = false,\n isMgmSelf\n}) {\n const showPlaceholder = isIniting || isLazyLoading;\n const { t } = useTranslation();\n // [#86eqmcjh6] 在關卡獎上 24px 是文字 \"完成 1 關可解鎖額外獎勵\",當畫面滑到這段文字時, load image 跟 task prize 內容\n const { ref, inView } = useInView({\n triggerOnce: true,\n rootMargin: '24px 0%',\n skip: !isLazyLoading\n });\n const lottieRef = useRef(null);\n const [showAnimation, setShowAnimation] = useState(true);\n const [processingOnClick, setProcessingOnClick] = useState(false);\n const [titleType, setTitleType] = useState(titleTypes.TEXT);\n [title, imgSrc] = (() => {\n const defaultTitleAndImg = lotteryDefaultTitleAndImg[type] || { getTitle: () => '' };\n return [title ?? defaultTitleAndImg.getTitle(t), imgSrc ?? defaultTitleAndImg.imgSrc];\n })();\n const { borderRadius, color, backgroundColor } = componentStyle;\n const lottieData = getStatusMappingLottieData(status);\n const hintText = getHintText({\n gameType,\n t,\n checkInTargetQuantity,\n prizeLeftQuantity,\n prizeTotalQuantity,\n isMgmSelf\n });\n const btnText = getBtnText({ t, type, status });\n const [btnVariant, btnCustomStyle] = getBtnVariantAndStyle({\n type,\n status,\n styleObj: componentStyle\n });\n const eventHandlers = isEditorMode\n ? {\n onMouseEnter: () => setTitleType(titleTypes.INPUT),\n onMouseLeave: () => setTitleType(titleTypes.TEXT)\n }\n : {};\n\n useEffect(() => {\n if (lottieRef.current) {\n if (isIniting || isLazyLoading || [statuses.LOCKED].includes(status)) {\n lottieRef.current.goToAndStop(0);\n } else {\n lottieRef.current.play();\n }\n }\n }, [status, isIniting, isLazyLoading]);\n useEffect(() => {\n if (inView) {\n onLazyLoaded();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [inView]);\n useEffect(() => {\n if (status === statuses.UNLOCKED) {\n setShowAnimation(true);\n } else {\n setShowAnimation(false);\n }\n }, [status]);\n async function handleClick() {\n if (status === statuses.UNLOCKED) {\n setProcessingOnClick(true);\n await onButtonClick();\n setProcessingOnClick(false);\n }\n }\n\n return (\n \n \n {(isEditorMode || firstView) && (\n \n )}\n {showPlaceholder ? (\n \n ) : (\n \n )}\n \n \n
\n
\n \n
\n \n
\n \n {showPlaceholder ? (\n \n ) : (\n hintText\n )}\n \n {titleType === titleTypes.INPUT && (\n onTitleChange(e.target.value)}\n onMouseMove={e => e.stopPropagation()}\n multiline\n fullWidth\n maxRows={2}\n css={[titleInputStyle, generateMuiTextFieldCustomColorStyle(color)]}\n />\n )}\n {titleType === titleTypes.TEXT && (\n \n {showPlaceholder ? (\n \n ) : (\n title\n )}\n \n )}\n
\n \n {showPlaceholder ? (\n \n ) : (\n btnText\n )}\n \n
\n \n \n );\n}\n\nconst titleTypes = {\n INPUT: 'input',\n TEXT: 'TEXT'\n};\n\nexport const statuses = {\n LOCKED: 'LOCKED',\n UNLOCKED: 'UNLOCKED',\n UNLOCKED_ADMIN_PRIZE: 'UNLOCKED_ADMIN_PRIZE',\n PRIZE_EMPTY: 'PRIZE_EMPTY',\n IS_FULFILL: 'IS_FULFILL',\n IS_UN_QUALIFY: 'IS_UN_QUALIFY'\n};\n\nfunction getStatusMappingLottieData(status) {\n switch (status) {\n case statuses.IS_FULFILL:\n case statuses.UNLOCKED_ADMIN_PRIZE:\n return animationDataCorrect;\n case statuses.IS_UN_QUALIFY:\n case statuses.PRIZE_EMPTY:\n return animationDataNotCorrect;\n default:\n return animationDataLock;\n }\n}\n\nconst lotteryDefaultTitleAndImg = {\n [lotteryAdminTypes.ADMIN]: {\n getTitle: t => t('label.check_in.lottery_task_card.title.admin_draw'),\n imgSrc: 'https://assets.fevercdn.com/promotion/img/check_in/task_card_img/admin.png'\n },\n [lotteryInstantTypes.JOIN_AND_GET]: {\n getTitle: t => t('label.check_in.lottery_task_card.title.join'),\n imgSrc: 'https://assets.fevercdn.com/promotion/img/check_in/task_card_img/join_and_get.png'\n },\n [lotteryParticipantTypes.WIN_WHEEL]: {\n getTitle: t => t('label.check_in.lottery_task_card.title.win_wheel'),\n imgSrc: 'https://assets.fevercdn.com/nc-admin/images/promo_module_winwheel.png'\n },\n [lotteryParticipantTypes.SCRATCH_CARD]: {\n getTitle: t => t('label.check_in.lottery_task_card.title.scratch_card'),\n imgSrc: 'https://assets.fevercdn.com/nc-admin/images/promo_module_scratch_card.png'\n },\n [lotteryParticipantTypes.POKE_GAME]: {\n getTitle: t => t('label.check_in.lottery_task_card.title.poke'),\n imgSrc: 'https://assets.fevercdn.com/nc-admin/images/promo_module_poke_game.png'\n },\n [lotteryParticipantTypes.RED_ENVELOPE_RAIN]: {\n getTitle: t => t('label.check_in.lottery_task_card.title.envelope_rain'),\n imgSrc: 'https://assets.fevercdn.com/nc-admin/images/promo_module_red_envelope_rain.png'\n },\n [lotteryParticipantTypes.SLOTS]: {\n getTitle: t => t('label.check_in.lottery_task_card.title.slots'),\n imgSrc: 'https://assets.fevercdn.com/nc-admin/images/promo_module_slots.png'\n },\n [lotteryParticipantTypes.PICK_THE_PRIZE]: {\n getTitle: t => t('label.check_in.lottery_task_card.title.pick_the_prize'),\n imgSrc: 'https://assets.fevercdn.com/nc-admin/images/promo_module_choose.png'\n }\n};\n\nfunction getHintText({\n gameType,\n t,\n checkInTargetQuantity,\n prizeLeftQuantity,\n prizeTotalQuantity,\n isMgmSelf\n}) {\n let text = (() => {\n switch (gameType) {\n case gameTypes.MULTI_CHALLENGE:\n case gameTypes.CHALLENGE_PHOTO_FRAME_COMPOSITE:\n return t('label.challenge.lottery_task_card.finish_count', {\n count: checkInTargetQuantity\n });\n case gameTypes.MGM_REFERRAL:\n return t('label.mgm_share.lottery_task_card.mgm_share_count', {\n count: checkInTargetQuantity\n });\n case gameTypes.MGM_SHARE:\n return t('label.mgm_share.lottery_task_card.mgm_share_count', {\n count: checkInTargetQuantity\n });\n case gameTypes.CHECK_IN:\n default:\n return t('label.check_in.lottery_task_card.check_in_count', {\n count: checkInTargetQuantity\n });\n }\n })();\n if (isMgmSelf) {\n text = t('label.mgm_share.lottery_task_card.mgm_share_count', {\n count: checkInTargetQuantity\n });\n }\n if (prizeLeftQuantity !== undefined) {\n text += `・${t('label.check_in.lottery_task_card.prize_left', {\n count: prizeLeftQuantity\n })}`;\n }\n if (prizeTotalQuantity !== undefined) {\n text += `・${t('label.check_in.lottery_task_card.prize_total', {\n count: prizeTotalQuantity\n })}`;\n }\n return text;\n}\nfunction getBtnText({ t, type, status }) {\n switch (status) {\n case statuses.IS_FULFILL:\n return t('label.check_in.lottery_task_card.fulfill');\n case statuses.IS_UN_QUALIFY:\n return t('label.lottery_task_card.unqualify');\n case statuses.UNLOCKED_ADMIN_PRIZE:\n return t('label.check_in.lottery_task_card.unlocked.admin_prize');\n case statuses.PRIZE_EMPTY:\n return t('label.check_in.lottery_task_card.prize_empty');\n case statuses.UNLOCKED: {\n if (type === lotteryParticipantTypes.PICK_THE_PRIZE) {\n return t('btn.open_winner.client_pick');\n } else if (isLotteryHasAnimation(type)) {\n return t('label.check_in.lottery_task_card.unlocked.participant_prize.luck');\n } else {\n return t('label.check_in.lottery_task_card.unlocked.participant_prize');\n }\n }\n case statuses.LOCKED:\n default:\n return t('label.check_in.lottery_task_card.locked');\n }\n}\n\nfunction getBtnVariantAndStyle({\n type,\n status,\n styleObj: { borderRadius, color, backgroundColor }\n}) {\n if (type !== lotteryAdminTypes.ADMIN && status === statuses.UNLOCKED) {\n return [\n btnVariants.OUTLINED,\n css(\n `font-size:14px; background-color: ${color}; color: ${backgroundColor}; border-radius: ${borderRadius}px; &:hover, &:active {\n background-color: ${color}; color: ${backgroundColor}; border-radius: ${borderRadius}px;\n }`\n )\n ];\n } else {\n return [btnVariants.TEXT, css(`font-size:14px; color: ${color}; cursor: not-allowed;`)];\n }\n}\n\nconst containerStyle = firstView => css`\n .ratio-scale-wrapper {\n position: relative;\n > div {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n right: 0;\n }\n }\n .content-wrapper {\n padding: 16px;\n padding-top: 30px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: stretch;\n position: relative;\n > .content-wrapper-text {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n }\n }\n div.icon-wrapper {\n width: 60px;\n height: 60px;\n border-radius: 30px;\n z-index: 3;\n position: absolute;\n left: 50%;\n top: 0;\n transform: translate(-50%, -50%);\n }\n ${firstView &&\n `.btn-upload-img {\n opacity: 1;`}\n &:hover {\n .btn-upload-img {\n opacity: 1;\n }\n }\n`;\n\nconst getContentWrapperStyle = (color, bgColor, borderRadius) => css`\n color: ${color};\n background-color: ${bgColor};\n border-radius: 0 0 ${borderRadius}px ${borderRadius}px;\n`;\n\nconst btnStyle = css`\n font-size: 20px;\n align-self: center;\n min-width: 160px;\n &:hover {\n background-color: transparent;\n }\n`;\n\nconst animateStyle = css`\n animation: ${feverZoomScale} 3.5s ease-in-out;\n`;\n\nconst titleInputStyle = css`\n & .MuiInputBase-root {\n padding: 0;\n }\n & textarea.MuiInputBase-input.MuiInput-input {\n text-align: center;\n font-size: 1.25rem;\n font-weight: 500;\n line-height: 1.334;\n }\n`;\n\nconst checkQuantityTextStyle = css`\n color: inherit;\n text-align: center;\n margin-bottom: 4px;\n`;\n\nconst titleTextStyle = firstView => css`\n display: block; /* Fallback for non-webkit */\n display: -webkit-box;\n white-space: pre-wrap;\n font-weight: 500;\n text-align: center;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n color: inherit;\n ${firstView &&\n ` border-bottom: 1px solid;\n`}\n`;\n\nconst textSkeletonStyle = color => css`\n display: inline-block;\n background-color: ${color};\n`;\n\nconst maskStyle = ({ borderRadius, backgroundColor, show }) => css`\n border-radius: ${borderRadius}px ${borderRadius}px 0 0;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 2;\n background-color: ${backgroundColor};\n opacity: ${show ? '56%' : 0};\n transition: all 0.2s linear;\n`;\n","import React from 'react';\nimport NavigateBeforeIcon from '@material-ui/icons/NavigateBefore';\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\n\nimport { breakpoints } from 'utils/breakpoint';\n\nexport default function getCarouselProps(\n { deskTopSlidesToShow = 3 } = {},\n arrows = true,\n draggable = false\n) {\n return {\n dots: false,\n infinite: false,\n speed: 500,\n slidesToShow: deskTopSlidesToShow,\n slidesToScroll: 1,\n initialSlide: 0,\n prevArrow: ,\n nextArrow: ,\n arrows: arrows,\n draggable: draggable,\n responsive: [\n {\n breakpoint: breakpoints.xsm,\n settings: {\n slidesToShow: 1,\n centerMode: true,\n centerPadding: '5%'\n }\n }\n ]\n };\n}\n\nfunction BeforeIcon({ className, style, onClick }) {\n return ;\n}\n\nfunction NextIcon({ className, style, onClick }) {\n return ;\n}\n","import React from 'react';\nimport { css } from '@emotion/core';\nimport Slick from 'react-slick';\n\nimport { below, breakpoints } from 'utils/breakpoint';\nimport getCarouselProps from 'editor/game_checkIn/components/lotteryTaskCarousel/getCarouselProps';\n\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\n\nimport LotteryTaskCard from 'editor/game_checkIn/components/lotteryTaskCarousel/LotteryTaskCard';\n\nexport default function LotteryTaskCarousel({\n gameType,\n deskTopSlidesToShow = 3,\n disabledEdit,\n componentStyle = {},\n items = [],\n forwardCarouselRef = () => {},\n onTitleChange = () => {},\n onImgDrop = () => {},\n onImgDropError = () => {},\n onLazyLoaded = () => {},\n onGetWinner = () => {}\n}) {\n const isXsmScreen = useMediaQuery(`(max-width:${breakpoints.xsm}px)`);\n const carouselProps = getCarouselProps({ deskTopSlidesToShow });\n const styleObj = {\n backgroundColor: componentStyle.optionColor,\n color: componentStyle.optionLabelColor,\n borderRadius: componentStyle.contentBorderRadius\n };\n const itemsLength = items.length;\n const noNeedCarousel = isXsmScreen ? itemsLength === 1 : itemsLength <= deskTopSlidesToShow;\n\n if (itemsLength === 0) {\n return null;\n }\n\n const cards = items.map(item => {\n const {\n uuid,\n type,\n title,\n imgSrc,\n taskCondition,\n status,\n prizeLeftQuantity,\n prizeTotalQuantity,\n isIniting,\n isLazyLoading,\n isMgmSelf,\n isMgmShare\n } = item;\n return (\n
\n onLazyLoaded(uuid, Boolean(isMgmSelf || isMgmShare))}\n onTitleChange={v => onTitleChange(uuid, v)}\n onImgDrop={resp => onImgDrop(uuid, resp)}\n onImgDropError={errMsg => onImgDropError(errMsg)}\n onButtonClick={() => onGetWinner(item)}\n isMgmSelf={isMgmSelf}\n />\n
\n );\n });\n return noNeedCarousel ? (\n \n {cards}\n \n ) : (\n
\n \n {cards}\n \n
\n );\n}\n\nconst containerStyle = css`\n display: flex;\n justify-content: center;\n padding-top: 16px;\n transform: translate(0, 0);\n`;\n\nconst cardFlexStyle = itemsPerRow => css`\n > * {\n width: ${Math.ceil(100 / itemsPerRow)}%;\n }\n ${below('sm')} {\n > * {\n width: 100%;\n padding-left: 24px;\n padding-right: 24px;\n }\n }\n`;\n\nconst carouselContainerStyle = css`\n padding: 16px 24px 0;\n overflow: hidden;\n & .slick-arrow {\n &.slick-disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n color: #000;\n background-color: #fff;\n border-radius: 50%;\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.16);\n }\n & .slick-prev {\n left: -18px;\n }\n & .slick-next {\n right: -18px;\n }\n ${below('sm')} {\n padding: 16px 0px 0;\n & .slick-arrow.slick-prev,\n & .slick-arrow.slick-next {\n opacity: 0;\n pointer-events: none;\n }\n }\n`;\n\nconst cardWrapperStyle = css`\n padding: 8px;\n ${below('sm')} {\n padding: 4px;\n }\n`;\n","import { useState } from 'react';\nimport useLineEnv from 'hooks/useLineEnv';\n\nfunction useLocalStorage(key, initialValue) {\n const { isInLiffBrowser, isInLineAppBrowser } = useLineEnv();\n const [value, setValue] = useState(() => {\n try {\n const storedValue =\n Boolean(isInLiffBrowser) && Boolean(isInLineAppBrowser)\n ? window.localStorage[key]\n : localStorage.getItem(key);\n if (storedValue) {\n return JSON.parse(storedValue);\n }\n return typeof initialValue === 'function' ? initialValue() : initialValue;\n } catch (error) {\n if (error.name === 'NS_ERROR_FILE_CORRUPTED') {\n // Firefox browser error: https://stackoverflow.com/questions/18877643/error-in-local-storage-ns-error-file-corrupted-firefox\n console.error('Firefox storage has been corrupted when get local storage', error);\n return typeof initialValue === 'function' ? initialValue() : initialValue;\n } else {\n console.error('Failed to get local storage', error);\n return typeof initialValue === 'function' ? initialValue() : initialValue;\n }\n }\n });\n\n function setItem(value) {\n setValue(prevValue => {\n try {\n const newValue = typeof value === 'function' ? value(prevValue) : value;\n localStorage.setItem(key, JSON.stringify(newValue));\n return newValue;\n } catch (error) {\n if (error.name === 'NS_ERROR_FILE_CORRUPTED') {\n // Firefox browser error: https://stackoverflow.com/questions/18877643/error-in-local-storage-ns-error-file-corrupted-firefox\n console.error(\n 'Firefox storage has been corrupted when set local storage',\n error\n );\n } else {\n console.error('Failed to set local storage', error);\n }\n return prevValue;\n }\n });\n }\n\n return [value, setItem];\n}\n\nexport default useLocalStorage;\n","import { useCallback } from 'react';\nimport { useSelector } from 'react-redux';\nimport { filterUndefinedOrNull } from 'utils/filter';\nimport { appendQueryParams } from 'utils/url';\n\nconst useShareLink = ({ domain }) => {\n const { isMgmShare = false, isMgmSelf = false } = useSelector(s => s.flags);\n const getShareUrl = ({ testCode, promoId, promoUUID, entryId, entryUUID, referralCode }) => {\n const shouldGetMgmLink = isMgmSelf || isMgmShare;\n const urlQuery = {\n utm_source: `promo_${promoId}`,\n utm_medium: 'friend_referral',\n utm_campaign: shouldGetMgmLink ? 'fever_mgm' : 'fever_share',\n utm_content: shouldGetMgmLink ? referralCode : entryId,\n serialno: entryId,\n entryUuid: entryUUID,\n test_code: testCode?.test_code,\n test_expired: testCode?.test_expired,\n ts: Date.now()\n };\n let baseUrl = `https://${domain}/r/promotions/${\n shouldGetMgmLink ? 'mgm' : 'share'\n }/${promoUUID}`;\n\n return appendQueryParams(baseUrl, filterUndefinedOrNull(urlQuery));\n };\n\n return useCallback(getShareUrl, [domain, isMgmSelf, isMgmShare]);\n};\n\nexport default useShareLink;\n","/**\n * Delays execution of a callback or returns a promise resolving after a delay.\n * If a callback is provided, executes it after the specified delay and returns a cancellation function.\n * If no callback is provided, returns a promise that resolves after the specified delay.\n *\n * @param {function} [callback] - Optional. The callback function to execute after the delay.\n * @param {number} timer - The delay in milliseconds.\n * @returns {function|Promise} Returns a cancellation function if a callback is provided, or a Promise if no callback is provided.\n */\nexport function delay({ callback, timer = 0 }) {\n if (typeof timer !== 'number' || timer < 0) {\n throw new Error('Invalid delay parameter');\n }\n\n if (typeof callback === 'function') {\n const timeoutId = setTimeout(callback, timer);\n\n const cancel = () => clearTimeout(timeoutId);\n\n return cancel;\n } else if (callback === undefined) {\n return new Promise(resolve => setTimeout(resolve, timer));\n } else {\n throw new Error('Invalid arguments: callback must be a function or undefined');\n }\n}\n","export function removeParamFromQueryString(url, paramToRemove) {\n const urlObj = new URL(url);\n const params = urlObj.searchParams;\n\n params.delete(paramToRemove);\n urlObj.search = params.toString();\n return urlObj.toString();\n}\n\nexport function appendQueryParams(url, params) {\n if (!url) {\n return '';\n }\n if (Object.keys(params).length === 0) {\n return url;\n }\n const [urlWithoutHash, hash] = url.split('#');\n const [baseUrl, queryString] = urlWithoutHash.split('?');\n const searchParams = new URLSearchParams(queryString);\n\n for (const [key, value] of Object.entries(params)) {\n // append: 會添加新的參數而不移除舊的,可能導致重複值\n // set: 會替換現有參數的值,確保每個參數只有一個最新的值\n searchParams.set(key, value);\n }\n\n const newUrl = `${baseUrl}?${searchParams.toString()}`;\n return hash ? `${newUrl}#${hash}` : newUrl;\n}\n","export const setTextVariantStyle = (variant, propertyName) => {\n let fontStyle = `\n font-style: normal;\n font-family: Noto Sans TC, Roboto, Helvetica, Arial, sans-serif;\n `;\n\n function getPropertyValueFromString(cssString, propertyName) {\n const pattern = new RegExp(`${propertyName}:\\\\s*([^;]+);`);\n const match = cssString.match(pattern);\n\n if (match && match.length === 2) {\n return match[1].trim();\n } else {\n return null;\n }\n }\n\n switch (variant) {\n case 'h1':\n fontStyle += `\n font-size: 96px;\n font-weight: 700;\n line-height: 1.25;\n letter-spacing: -0.25px;\n `;\n break;\n case 'h2':\n fontStyle += `\n font-size: 60px\n font-weight: 500;\n line-height: 1.33333333;\n letter-spacing: -0.5px;\n `;\n break;\n case 'h3':\n fontStyle += `\n font-size: 48px;\n font-weight: 400;\n line-height: 1.41666667; \n letter-spacing: -1px;\n `;\n break;\n case 'h4':\n fontStyle += `\n font-size: 34px;\n font-weight: 400;\n line-height: 1.41176471;\n letter-spacing: 0.25px;\n `;\n break;\n case 'h5':\n fontStyle += `\n font-size: 24px;\n font-weight: 400;\n line-height: 1.41666667;\n letter-spacing: 0px;\n `;\n break;\n case 'h6':\n fontStyle += `\n font-size: 20px;\n font-weight: 500;\n line-height: 1.5;\n letter-spacing: 0.15px;\n `;\n break;\n case 'subtitle1':\n fontStyle += `\n font-size: 16px;\n font-weight: 500;\n line-height: 1.5;\n letter-spacing: 0.15px;\n `;\n break;\n case 'subtitle2':\n fontStyle += `\n font-size: 14px;\n font-weight: 500;\n line-height: 1.42857143;\n letter-spacing: 0.1px;\n `;\n break;\n case 'body1':\n fontStyle += `\n font-size: 16px;\n font-weight: 400;\n line-height: 1.5;\n letter-spacing: 0.5px;\n `;\n break;\n case 'body2':\n fontStyle += `\n font-size: 14px;\n font-weight: 400;\n line-height: 1.42857143;\n letter-spacing: 0.25px;\n `;\n break;\n case 'button':\n fontStyle += `\n font-size: 14px;\n font-weight: 500;\n line-height: 1.42857143;\n letter-spacing: 1.25px;\n `;\n break;\n case 'caption':\n fontStyle += `\n font-size: 12px;\n font-weight: 400;\n line-height: 1.5\n letter-spacing: 0.4px;\n `;\n break;\n case 'overline':\n fontStyle += `\n font-size: 12px;\n font-weight: 500;\n line-height: 1.16666667;\n letter-spacing: 1.5px;\n `;\n break;\n default:\n }\n if (propertyName) {\n return getPropertyValueFromString(fontStyle, propertyName).replace(/px/, '');\n }\n return fontStyle;\n};\n"],"names":["ResponsiveBgImage","_ref","src","style","mediaStyles","useMemo","generatePictureSourceData","reduceRight","str","data","concat","media","srcSet","___EmotionJSX","css","_css","containerStyle","name","styles","generateMuiTextFieldCustomColorStyle","color","generateMuiSelectCustomColorStyle","sectionWrapperStyle","below","textInputStyle","errorHintStyle","shortWidthSectionErrorHintStyle","fullWidthSectionErrorHintStyle","getFeverFormTextAlign","arguments","length","undefined","useGameFormReduxData","getter","IS_EDITOR_MODE","s","gameFormBased","getLotteryParticipant","lotteries","pages","useSelector","sections","fields","options","settings","lotteryParticipant","clientBodyStyle","IS_IFRAME_MODE","appContainerStyle","IFRAME_MODE_MIN_HEIGHT","POWER_BY_HEIGHT","clientSmallWrapperStyle","clientBigWrapperStyle","routeContainerStyle","shadowLightStyle","shadowDarkStyle","loadingBgImgStyle","convertSettingTheme2ThemeStyle","settingTheme","bgColor","contentBgColor","btnColor","textColor","defaultThemeSetting","convertSettingStyle2ComponentStyle","settingStyle","contentBgType","contentAlign","contentBorderRadius","buttonBgColor","buttonTextColor","buttonSize","optionBgColor","optionTextColor","titleColor","descColor","answerColor","isContentBgColorTransparent","getColorRGBA","alpha","optionColor","optionLabelColor","buttonColor","buttonLabelColor","convertSettingStyle2FormBasedEditorStyle","bgType","bgImgUrl","background","type","imageUrl","contentBackground","btnTextColor","btnSize","isContentBgTransparent","resultHeaderContainerStyle","themeStyle","preventMarginCollapse","resultFooterContainerStyle","originalFileFirstPathName","compressedFileFirstPathName","compressedSizes","size","imgSize","parsed","exec","origin","firstPath","restPath","filename","ext","map","generatePictureSourceDataByProxyImage","_ref2","convertProxyImgUrl","url","resizeWidth","Emphasize","children","bold","fontWeight","withStyles","tooltip","padding","backgroundColor","Tooltip","enableBase64","config","onDropSuccess","onDropError","dropzoneConfig","generalConfig","getRootProps","getInputProps","open","inputRef","useDropzone","onDropAccepted","async","acceptedFiles","file","resp","base64","Promise","resolve","reject","reader","FileReader","readAsDataURL","onload","result","onerror","error","getBase64","onDropRejected","maxSize","i18n","t","accept","indexOf","String","toLowerCase","types","split","e","join","toUpperCase","multiple","BtnImgUpload","firstView","useSingleFileDropzoneProps","title","width","height","unit","placement","arrow","Button","_extends","className","btnStyle","variant","startIcon","AddCircleIcon","LotteryTaskCard","gameType","status","imgSrc","checkInTargetQuantity","prizeLeftQuantity","prizeTotalQuantity","componentStyle","isEditorMode","isIniting","isLazyLoading","onImgDrop","onImgDropError","onLazyLoaded","onTitleChange","onButtonClick","isMgmSelf","showPlaceholder","useTranslation","ref","inView","useInView","triggerOnce","rootMargin","skip","lottieRef","useRef","showAnimation","setShowAnimation","useState","processingOnClick","setProcessingOnClick","titleType","setTitleType","titleTypes","TEXT","_title","_imgSrc","defaultTitleAndImg","lotteryDefaultTitleAndImg","getTitle","borderRadius","lottieData","statuses","IS_FULFILL","UNLOCKED_ADMIN_PRIZE","animationDataCorrect","IS_UN_QUALIFY","PRIZE_EMPTY","animationDataNotCorrect","animationDataLock","getStatusMappingLottieData","hintText","text","gameTypes","MULTI_CHALLENGE","CHALLENGE_PHOTO_FRAME_COMPOSITE","count","MGM_REFERRAL","MGM_SHARE","CHECK_IN","getHintText","btnText","_ref3","UNLOCKED","lotteryParticipantTypes","PICK_THE_PRIZE","isLotteryHasAnimation","LOCKED","getBtnText","btnVariant","btnCustomStyle","_ref4","styleObj","lotteryAdminTypes","ADMIN","btnVariants","OUTLINED","getBtnVariantAndStyle","eventHandlers","onMouseEnter","INPUT","onMouseLeave","useEffect","current","includes","goToAndStop","play","RatioContainerStyle","ratio","enableOuterContainer","Skeleton","animation","maskStyle","show","Lottie","animationData","loop","autoPlay","getContentWrapperStyle","Typography","checkQuantityTextStyle","textSkeletonStyle","TextField","value","onChange","target","onMouseMove","stopPropagation","multiline","fullWidth","maxRows","titleInputStyle","titleTextStyle","ButtonWithLoadingEffect","disableAllRipple","animateStyle","onClick","isLoading","lotteryInstantTypes","JOIN_AND_GET","WIN_WHEEL","SCRATCH_CARD","POKE_GAME","RED_ENVELOPE_RAIN","SLOTS","feverZoomScale","_ref5","BeforeIcon","NavigateBeforeIcon","NextIcon","NavigateNextIcon","LotteryTaskCarousel","deskTopSlidesToShow","disabledEdit","items","forwardCarouselRef","onGetWinner","isXsmScreen","useMediaQuery","breakpoints","xsm","carouselProps","arrows","draggable","dots","infinite","speed","slidesToShow","slidesToScroll","initialSlide","prevArrow","nextArrow","responsive","breakpoint","centerMode","centerPadding","getCarouselProps","itemsLength","noNeedCarousel","cards","item","uuid","taskCondition","isMgmShare","cardWrapperStyle","key","Boolean","v","errMsg","cardFlexStyle","carouselContainerStyle","Slick","itemsPerRow","Math","ceil","initialValue","isInLiffBrowser","isInLineAppBrowser","useLineEnv","setValue","storedValue","window","localStorage","getItem","JSON","parse","console","prevValue","newValue","setItem","stringify","domain","flags","useCallback","testCode","promoId","promoUUID","entryId","entryUUID","referralCode","shouldGetMgmLink","urlQuery","utm_source","utm_medium","utm_campaign","utm_content","serialno","entryUuid","test_code","test_expired","ts","Date","now","baseUrl","appendQueryParams","filterUndefinedOrNull","delay","callback","timer","Error","timeoutId","setTimeout","cancel","clearTimeout","params","Object","keys","urlWithoutHash","hash","queryString","searchParams","URLSearchParams","entries","set","newUrl","toString","setTextVariantStyle","propertyName","fontStyle","cssString","pattern","RegExp","match","trim","getPropertyValueFromString","replace"],"sourceRoot":""}