{"version":3,"file":"static/js/2735.bde2bf96.js","sources":["webpack://@jotforminc/headerapp/../../../../../../../../src/components/assets/campaigns/2024/blackfriday/flyin/v2.js","webpack://@jotforminc/headerapp/../../../../../src/components/ui/FlyIn/FlyIn.js","webpack://@jotforminc/headerapp/../../../../../src/components/ui/TotalDealCountDown/TotalDealCountDown.js","webpack://@jotforminc/headerapp/../../../../../src/components/ui/TotalDealCountDown/utils.js","webpack://@jotforminc/headerapp/../../../src/hooks/useActionManager.js","webpack://@jotforminc/headerapp/../../../src/hooks/useCampaignInfo.js","webpack://@jotforminc/headerapp/../../../src/hooks/useUtm.js"],"sourcesContent":["import React from 'react';\nimport { string } from 'prop-types';\n\nimport { handleCustomNavigation } from '@jotforminc/utils';\n\nimport { t } from '@jotforminc/translation';\n\nimport './v2.scss';\n\nimport FlyIn from '../../../../../ui/FlyIn/FlyIn';\nimport { TotalDealCountDown } from '../../../../../ui/TotalDealCountDown/TotalDealCountDown';\n\nimport { useUtm } from '../../../../../../hooks/useUtm';\nimport { useActionManager } from '../../../../../../hooks/useActionManager';\n\nconst BlackFridayFlyinV2 = ({ isSticky, ...props }) => {\n const { tickAction } = useActionManager();\n\n const { getUrl } = useUtm({\n directURL: '/pricing'\n });\n const redirectUrl = getUrl();\n\n const handleClick = () => {\n tickAction({ action: 'click', target: 'discover-now' });\n handleCustomNavigation(redirectUrl, '_blank', true);\n };\n\n return (\n \"Close}\n isSticky={isSticky}\n {...props}\n >\n
\n
\n
\n
\n {t('HUGE SAVINGS')}\n
\n \n
\n {t('BLACK FRIDAY')}\n
\n
\n
\n \"Black\n
\n \n {t('Upgrade now')}\n \n
\n
\n \n );\n};\n\nBlackFridayFlyinV2.propTypes = {\n isSticky: string.isRequired\n};\n\nexport default BlackFridayFlyinV2;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { elementType, node, string } from 'prop-types';\n\nimport { IconXmark } from '@jotforminc/svg-icons';\nimport { t } from '@jotforminc/translation';\nimport { StorageHelper } from '@jotforminc/storage-helper';\n\nimport './flyin.scss';\n\nimport { getDismissStorageItemKey } from '../../../utils/campaign';\n\nimport { useAssetInfo, useAssetType } from '../../../hooks/useCampaignInfo';\nimport { useActionManager } from '../../../hooks/useActionManager';\n\nconst FlyIn = ({\n isSticky,\n onClose,\n children,\n CloseIconRenderer,\n ...props\n}) => {\n const FlyInRef = useRef(null);\n const {\n type: campaignType,\n assetsVersion\n } = useAssetInfo();\n const assetType = useAssetType();\n const { tickAction } = useActionManager();\n\n const [isShow, setIsShow] = useState(true);\n\n const dismissKey = getDismissStorageItemKey({\n assetType,\n assetsVersion,\n campaignType\n });\n\n const handleClose = () => {\n onClose();\n tickAction({ action: 'closed' });\n StorageHelper.setLocalStorageItem({\n key: dismissKey,\n value: '1',\n ttl: 1000 * 60 * 60 * 24\n });\n document.querySelector('body').classList.remove('jf-flyin--isSticky');\n setIsShow(false);\n };\n\n useEffect(() => {\n if (!isSticky) {\n document.querySelector('body').classList.add('jf-flyin--isSticky');\n setIsShow(true);\n } else {\n document.querySelector('body').classList.remove('jf-flyin--isSticky');\n setIsShow(false);\n }\n }, [isSticky]);\n\n useEffect(() => {\n if (isShow) {\n document.querySelector('body').classList.add('jf-flyin');\n }\n }, [isShow]);\n\n useEffect(() => {\n if (isShow) {\n tickAction({ action: 'seen' });\n }\n }, [isShow, tickAction]);\n\n if (!isShow) {\n return null;\n }\n\n return (\n \n
{children}
\n \n \n \n \n );\n};\n\nFlyIn.propTypes = {\n children: node.isRequired,\n isSticky: string.isRequired,\n CloseIconRenderer: elementType,\n onClose: () => {}\n};\n\nFlyIn.defaultProps = {\n onClose: () => {},\n CloseIconRenderer: IconXmark\n};\n\nexport default FlyIn;\n","import React, { useState, useEffect } from 'react';\n\nimport { t } from '@jotforminc/translation';\nimport { setCookie } from '@jotforminc/utils';\n\nimport './TotalDealCountDown.scss';\n\nimport {\n counterFirstDay,\n counterSecondDay,\n counterEndDate,\n digits,\n firstDayHours,\n secondDayHours\n} from './utils';\n\nlet initialCountdown;\nconst nowDate = Date.now();\n\nif ((nowDate >= counterFirstDay) && (nowDate < counterSecondDay)) {\n initialCountdown = firstDayHours();\n} else if ((nowDate >= counterSecondDay) && (nowDate < counterEndDate)) {\n initialCountdown = secondDayHours();\n}\n\nexport const TotalDealCountDown = () => {\n if (!initialCountdown) return null;\n const countdown = initialCountdown;\n const [animationStart, setAnimationStart] = useState(false);\n\n useEffect(() => {\n const isAnimationActive = !document.cookie.match('ss-campaign-count-animation');\n if (isAnimationActive) {\n setTimeout(() => {\n setCookie('ss-campaign-count-animation', '1', 0.2);\n setAnimationStart(true);\n }, 3000);\n }\n }, []);\n\n const countToString = countdown.toString();\n const splittedCountedValue = [];\n for (let i = 0; i < countToString.length; i++) {\n splittedCountedValue.push(countToString.charAt(i));\n }\n return (\n
\n
\n {\n splittedCountedValue.map((digit, index, allValues) => {\n const classes = ['firstPlay', 'secondPlay', 'thirdPlay'];\n return (\n \n );\n })\n }\n
\n
{t('Deals Left')}
\n
\n );\n};\n","const getCurrentDeal = (nowDate, period, limits, floors) => {\n const currentDif = nowDate - period;\n const minuteDiff = Math.floor(currentDif / 60000);\n const dealDiff = Math.floor(minuteDiff / floors);\n return limits - dealDiff;\n};\n\nexport const digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n\nconst getCurrentThings = (period, limits, floors) => {\n const nowDate = Date.now();\n const isAnimationActive = !document.cookie.match('bf-campaign-count-animation');\n if ((nowDate >= period[0]) && (nowDate <= period[1])) {\n const currentDeal = getCurrentDeal(nowDate, period[0], limits[0], floors[0]);\n const result = isAnimationActive ? currentDeal + 1 : currentDeal;\n return result % 10 === 0 ? result + 1 : result;\n }\n if ((nowDate >= period[1]) && (nowDate <= period[2])) {\n const currentDeal = getCurrentDeal(nowDate, period[1], limits[1], floors[1]);\n const result = isAnimationActive ? currentDeal + 1 : currentDeal;\n return result % 10 === 0 ? result + 1 : result;\n }\n if ((nowDate >= period[2]) && (nowDate <= period[3])) {\n const currentDeal = getCurrentDeal(nowDate, period[2], limits[2], floors[2]);\n const result = isAnimationActive ? currentDeal + 1 : currentDeal;\n return result % 10 === 0 ? result + 1 : result;\n }\n if ((nowDate >= period[3]) && (nowDate <= period[4])) {\n const currentDeal = getCurrentDeal(nowDate, period[3], limits[3], floors[3]);\n const result = isAnimationActive ? currentDeal + 1 : currentDeal;\n return result % 10 === 0 ? result + 1 : result;\n }\n};\n\nconst getTime = date => {\n return new Date(date).getTime();\n};\n\nexport const counterFirstDay = new Date('Nov 28, 2024 09:00:00 EST').getTime();\nexport const counterSecondDay = new Date('Nov 29, 2024 00:00:00 EST').getTime();\nexport const counterEndDate = new Date('Nov 29, 2024 21:00:00 EST').getTime();\n\nexport const firstDayHours = () => {\n const limits = [379, 357, 302, 264, 242];\n const floors = [5, 4, 9, 8];\n const hours = [\n 'Nov 28, 2024 09:00:00 EST',\n 'Nov 28, 2024 11:00:00 EST',\n 'Nov 28, 2024 15:00:00 EST',\n 'Nov 28, 2024 21:00:00 EST',\n 'Nov 28, 2024 23:59:59 EST'\n ];\n const msArray = hours.map(hour => getTime(hour));\n return getCurrentThings(msArray, limits, floors);\n};\n\nexport const secondDayHours = () => {\n const limits = [242, 210, 188, 133];\n const floors = [17, 5, 4, 9];\n const hours = [\n 'Nov 29, 2024 00:00:00 EST',\n 'Nov 29, 2024 09:00:00 EST',\n 'Nov 29, 2024 11:00:00 EST',\n 'Nov 29, 2024 15:00:00 EST',\n 'Nov 29, 2024 21:00:00 EST'\n ];\n const msArray = hours.map(hour => getTime(hour));\n return getCurrentThings(msArray, limits, floors);\n};\n","import { useAssetManagerContext } from '../context/AssetManagerContext';\nimport { useAssetInfo } from './useCampaignInfo';\n\nconst trackOnceActions = ['seen'];\n\n/**\n * Custom hook to manage and register actions with a specific target and tracking behavior.\n *\n * @returns {Object} An object containing helper methods.\n * @returns {Function} return.tickAction - Registers an action with the action manager, optionally modifying the target and tracking behavior.\n *\n * @example\n * const { tickAction } = useActionManager();\n * tickAction({\n * action: \"click\",\n * target: \"btn-upgrade-now\",\n * trackOnce: true\n * });\n */\nexport const useActionManager = () => {\n const {\n actionManager, assetInfo: { type: campaignType }, assetType\n } = useAssetManagerContext();\n const { assetYear, assetsVersion } = useAssetInfo();\n const target = `${campaignType.toLowerCase()}-${assetType}-${assetsVersion}${assetYear ? `-${assetYear}` : ''}`;\n\n /**\n * Registers an action with the action manager.\n *\n * @param {Object} params - Parameters for the action registration.\n * @param {string} params.action - The name of the action to register. (Required)\n * @param {string} [params.target] - An optional custom target to append to the default target. (Optional)\n * @param {boolean} [params.trackOnce=false] - Whether the action should be tracked only once. Defaults to `false`. (Optional)\n *\n * @example\n * const { tickAction } = useActionManager();\n * tickAction({\n * action: \"click\",\n * target: \"btn-upgrade-now\",\n * trackOnce: true\n * });\n */\n const tickAction = ({ action, target: targetParam = '', trackOnce: trackOnceParam = false }) => {\n const trackOnce = trackOnceActions.includes(action) || trackOnceParam;\n let _target = target;\n if (targetParam) {\n _target = `${targetParam}-${target}`;\n }\n actionManager.registerJotformAction({ action, target: _target, trackOnce });\n };\n\n return { tickAction };\n};\n","import { useAssetManagerContext } from '../context/AssetManagerContext';\n\nexport const useCampaignInfo = () => {\n const { campaignInfo } = useAssetManagerContext();\n return campaignInfo;\n};\n\nexport const useAssetInfo = () => {\n const { assetInfo } = useAssetManagerContext();\n return assetInfo;\n};\n\nexport const useAssetType = () => {\n const { assetType } = useAssetManagerContext();\n return assetType;\n};\n","import { useAssetInfo, useAssetType } from './useCampaignInfo';\n\nexport const useFlyinUtm = ({\n directURL,\n customUtmCampaign\n}) => {\n const assetType = useAssetType();\n const {\n utm_campaign: utmCampaign_\n } = useAssetInfo();\n\n const utmCampaign = customUtmCampaign || utmCampaign_;\n const utm = {\n campaign: utmCampaign,\n medium: 'website',\n content: ((window.location.pathname !== '/') ? window.location.pathname.replace(/\\//g, '') : `${utmCampaign}-${assetType}`)\n };\n const { campaign, medium, content } = utm;\n const urlSearchParams = new URLSearchParams();\n\n const utmParams = {\n utm_source: [campaign?.toLowerCase(), assetType].filter(f => !!f).join('-'),\n utm_medium: medium,\n utm_content: content,\n utm_campaign: campaign?.toLowerCase()\n };\n\n Object.keys(utmParams).forEach(paramKey => {\n if (utmParams[paramKey]) {\n urlSearchParams.append(paramKey, utmParams[paramKey]);\n }\n });\n\n const url = `${directURL}?${urlSearchParams.toString()}`;\n\n return {\n url\n };\n};\n\n/**\n * Custom hook to generate UTM-tagged URLs for tracking campaigns and user activity.\n *\n * @param {Object} options - Configuration options for the UTM parameters.\n * @param {string} options.directURL - The base URL where the UTM parameters will be appended.\n * @param {string} [options.customUtmCampaign] - A custom UTM campaign name to override the default.\n *\n * @returns {Object} An object containing helper methods.\n * @returns {Function} return.getUrl - Generates a URL with UTM parameters. Optionally appends a target to the `utm_content` parameter.\n *\n * @example\n * const { getUrl } = useUtm({ directURL: \"https://example.com\", customUtmCampaign: \"holiday-sale\" });\n * const url = getUrl(\"button-click\");\n * console.log(url);\n * // Output: \"https://example.com?utm_source=some-path&utm_medium=website&utm_content=assetType-assetsVersion-button-click&utm_campaign=holiday-sale\"\n */\nexport const useUtm = ({\n directURL,\n customUtmCampaign\n} = {}) => {\n const assetType = useAssetType();\n const {\n utm_campaign: utmCampaign_,\n assetsVersion,\n assetYear\n } = useAssetInfo();\n const utmCampaign = customUtmCampaign || utmCampaign_;\n\n const utm = {\n // entifies the source of your traffic (i.e., where the user came from).\n source: (window.location.pathname !== '/') ? window.location.pathname.replace(/\\//g, '') : `${utmCampaign}-${assetType}`,\n // identifies the specific campaign name, promotion, or product\n campaign: utmCampaign,\n // identifies the medium or channel of your traffic.\n medium: 'website',\n // used to differentiate between similar content or links in the same campaign.\n content: `${assetType}-${assetsVersion}${assetYear ? `-${assetYear}` : ''}`\n };\n\n const {\n source, campaign, medium, content\n } = utm;\n const urlSearchParams = new URLSearchParams();\n\n const utmParams = {\n utm_source: source,\n utm_medium: medium,\n utm_content: content,\n utm_campaign: campaign?.toLowerCase()\n };\n\n Object.keys(utmParams).forEach(paramKey => {\n if (utmParams[paramKey]) {\n urlSearchParams.append(paramKey, utmParams[paramKey]);\n }\n });\n\n const getUrl = (directUrl_, target = '') => {\n if (target) {\n const utmContent = urlSearchParams.get('utm_content');\n urlSearchParams.set('utm_content', `${utmContent}-${target}`);\n }\n return `${directUrl_ || directURL}?${urlSearchParams.toString()}`;\n };\n\n return {\n getUrl\n };\n};\n"],"names":["BlackFridayFlyinV2","isSticky","props","tickAction","useActionManager","getUrl","useUtm","directURL","redirectUrl","_jsx","FlyIn","CloseIconRenderer","img","className","src","alt","div","data-jfa","_jsxs","t","TotalDealCountDown","button","type","onClick","action","target","handleCustomNavigation","propTypes","string","onClose","children","FlyInRef","useRef","campaignType","assetsVersion","useAssetInfo","assetType","useAssetType","isShow","setIsShow","useState","dismissKey","getDismissStorageItemKey","useEffect","document","querySelector","classList","remove","add","ref","data-campaign-type","aria-label","StorageHelper","key","value","ttl","node","elementType","defaultProps","IconXmark","initialCountdown","getCurrentDeal","nowDate","period","limits","floors","Math","floor","minuteDiff","currentDif","digits","getCurrentThings","Date","now","isAnimationActive","cookie","match","currentDeal","result","getTime","date","counterFirstDay","counterSecondDay","counterEndDate","hours","map","hour","secondDayHours","countdown","animationStart","setAnimationStart","setTimeout","setCookie","countToString","toString","splittedCountedValue","i","length","push","charAt","digit","index","allValues","ul","classes","numberD","dynamicClass","islastDigit","parseInt","li","a","href","trackOnceActions","actionManager","assetInfo","useAssetManagerContext","assetYear","toLowerCase","targetParam","trackOnce","trackOnceParam","includes","_target","registerJotformAction","useFlyinUtm","customUtmCampaign","utm_campaign","utmCampaign_","utmCampaign","campaign","medium","content","window","location","pathname","replace","urlSearchParams","URLSearchParams","utmParams","utm_source","filter","f","join","utm_medium","utm_content","Object","keys","forEach","paramKey","append","url","source","directUrl_","utmContent","get","set"],"mappings":"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"}