{"version":3,"file":"static/js/3149.d15e0504.js","sources":["webpack://@jotforminc/headerapp/../../../../../../../../src/components/assets/launches/2024/academy/exit-modal/v1.js","webpack://@jotforminc/headerapp/../../libs/magnet/src/components/Dialog/dialog.cva.ts","webpack://@jotforminc/headerapp/../../libs/magnet/src/components/Dialog/Dialog.tsx","webpack://@jotforminc/headerapp/../../libs/magnet/src/components/Dialog/dialog.types.ts","webpack://@jotforminc/headerapp/../../libs/magnet/src/components/Dialog/DialogBody.tsx","webpack://@jotforminc/headerapp/../../libs/magnet/src/components/Dialog/DialogCloseButton.tsx","webpack://@jotforminc/headerapp/../../../src/utils/exit.js","webpack://@jotforminc/headerapp/../../../../../src/components/ui/ExitModal/ExitModal.js","webpack://@jotforminc/headerapp/../../../src/hooks/useActionManager.js","webpack://@jotforminc/headerapp/../../../src/hooks/useCampaignInfo.js","webpack://@jotforminc/headerapp/../../../src/hooks/useUtm.js"],"sourcesContent":["/* eslint-disable max-len */\nimport React from 'react';\n\nimport { t } from '@jotforminc/translation';\n\nimport './v1.scss';\n\nimport ExitModal from '../../../../../ui/ExitModal/ExitModal';\n\nimport { useUtm } from '../../../../../../hooks/useUtm';\n\nconst AcademyExitModal = () => {\n const { getUrl } = useUtm({\n directURL: '/academy/courses/jotform-apps/explore-jotform-apps'\n });\n\n const redirectUrl = getUrl();\n\n return (\n \n \n \n \n \n {t('New Course')}\n {t('Explore Jotform Apps')}\n \n \n \n \n \n \n \n {t('Need help getting started?')}\n \n \n {t('Take our free course to learn how to use Jotform Apps.')}\n \n \n {t('Get Certified')}\n \n \n \n \n \n );\n};\n\nexport default AcademyExitModal;\n","import { cva } from 'class-variance-authority';\nimport { CVAType } from '../../types/system.types';\nimport { DialogIconProps, DialogProps } from './dialog.types';\nimport { primary } from '../../tokens/colors';\n\ntype DialogIconCVAType = CVAType>;\ntype DialogContainerCVAType = CVAType>\ntype DialogCVAType = CVAType>\n\nexport const dialogContainerCVA = cva('bg-gray-900 bg-opacity-60 fixed inset-0 flex items-end xs:items-center justify-center pt-12 xs:pt-0', {\n variants: {\n noFade: {\n false: 'anim-150 fade-in'\n }\n }\n});\nexport const dialogCVA = cva(`${primary.text.medium.base} bg-white w-full radius-t-lg xs:radius-b-lg max-h-full flex flex-col relative m-0`, {\n variants: {\n size: {\n small: 'max-w-120',\n medium: 'max-w-sm'\n }\n }\n});\nexport const dialogIconCVA = cva('bg-opacity-50 flex items-center justify-center w-16 h-16 xs:w-20 xs:h-20 radius-lg mb-8 mx-auto', {\n variants: {\n colorStyle: {\n success: 'bg-green-200 color-green-500',\n informative: 'bg-blue-200 color-blue-500',\n warning: 'bg-yellow-200 color-yellow-500',\n error: 'bg-red-200 color-red-500'\n }\n }\n});\n","import React from 'react';\nimport type { ElementType, PropsWithChildren } from 'react';\nimport { Dialog as HeadlessDialog } from '@headlessui/react';\nimport '@jotforminc/jotform.css';\n// eslint-disable-next-line no-restricted-imports\nimport '@jotforminc/jotform.css/animation.css';\n\nimport { DialogProps, dialogDefaultProps } from './dialog.types';\nimport { PolymorphicProps } from '../../types/system.types';\nimport { dialogCVA, dialogContainerCVA } from './dialog.cva';\n\nexport const Dialog = (props: PropsWithChildren>): JSX.Element => {\n const {\n open,\n onClose,\n initialFocus,\n zIndex,\n children,\n ariaLabel,\n noFade,\n as: _as = 'div',\n size,\n ...rest\n } = props;\n\n const InnerComponent = _as as ElementType;\n\n return (\n \n \n {children}\n \n \n );\n};\n\nDialog.defaultProps = dialogDefaultProps;\n","import {\n ComponentPropsWithoutRef, MutableRefObject\n} from 'react';\nimport { Icon } from '../../constants/common.types';\n\nexport type DialogProps = {\n open: boolean,\n onClose: () => void,\n initialFocus?: MutableRefObject,\n zIndex?: number,\n ariaLabel: string,\n noFade?: boolean,\n size?: 'small' | 'medium',\n};\n\nexport type DialogBodyProps = ComponentPropsWithoutRef<'div'>;\n\nexport type DialogIconProps = ComponentPropsWithoutRef<'div'> & {\n colorStyle?: 'success' | 'informative' | 'warning' | 'error',\n icon: Icon\n}\n\nexport type DialogTitleProps = ComponentPropsWithoutRef<'h2'>;\nexport type DialogCloseButtonProps = ComponentPropsWithoutRef<'button'>;\nexport type DialogDescriptionProps = ComponentPropsWithoutRef<'p'>;\nexport type DialogContentProps = ComponentPropsWithoutRef<'div'>;\nexport type DialogFooterProps = ComponentPropsWithoutRef<'div'>;\n\nexport type DialogActionsProps = ComponentPropsWithoutRef<'div'> & {\n defaultAlignment?: boolean\n}\n\nexport const dialogActionsDefaultProps:Partial = {\n defaultAlignment: true\n} as const;\n\nexport const dialogDefaultProps:Partial = {\n open: false,\n zIndex: 1004,\n noFade: false,\n size: 'small'\n} as const;\n\nexport const dialogIconDefaultProps:Partial = {\n colorStyle: 'informative'\n} as const;\n","import React from 'react';\nimport type { PropsWithChildren } from 'react';\nimport { cx } from 'class-variance-authority';\n\nimport { DialogBodyProps } from './dialog.types';\n\nexport const DialogBody = (props: PropsWithChildren): JSX.Element => {\n const {\n children, className, ...rest\n } = props;\n\n return (\n {children}\n );\n};\n","import React, { ComponentPropsWithRef, forwardRef } from 'react';\nimport { IconXmark } from '@jotforminc/svg-icons';\nimport { Button } from '../Button';\nimport { DialogCloseButtonProps } from './dialog.types';\n\nexport const DialogCloseButton = forwardRef((\n props: DialogCloseButtonProps,\n ref?: ComponentPropsWithRef<'button'>['ref']\n): JSX.Element => {\n const {\n ...rest\n } = props;\n\n return (\n \n );\n});\n","export const handleShowExitModal = (event, show) => {\n const {\n target = {},\n clientX = 0,\n clientY = 0,\n relatedTarget,\n toElement\n } = event;\n const { tagName = '' } = target;\n if (tagName.toLowerCase() === 'input') return;\n\n const vpWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n\n if (clientX >= (vpWidth - 50)) return;\n if (clientY >= 50) return;\n\n if (document.querySelector('body').classList.contains('standalone')) return;\n\n const from = relatedTarget || toElement;\n if (!from) show();\n};\n","import React, { useEffect, useState } from 'react';\nimport { node, string } from 'prop-types';\n\nimport {\n Dialog,\n DialogBody,\n DialogCloseButton\n} from '@jotforminc/magnet';\nimport { StorageHelper } from '@jotforminc/storage-helper';\n\nimport './exit-modal.scss';\n\nimport { handleShowExitModal } from '../../../utils/exit';\nimport { getDismissStorageItemKey, checkIsAssetDismissed } from '../../../utils/campaign';\n\nimport { useAssetInfo, useAssetType } from '../../../hooks/useCampaignInfo';\nimport { useActionManager } from '../../../hooks/useActionManager';\n\nconst ExitModal = ({\n children,\n title,\n onClose\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const {\n type: campaignType,\n assetsVersion\n } = useAssetInfo();\n const assetType = useAssetType();\n const { tickAction } = useActionManager();\n\n const dismissKey = getDismissStorageItemKey({\n assetType,\n assetsVersion,\n campaignType\n });\n\n const isDismissed = checkIsAssetDismissed({\n assetType,\n assetsVersion,\n campaignType\n });\n\n const handleOnClose = () => {\n tickAction({ action: 'closed' });\n\n document.querySelector('body').classList.remove('jf-exit-modal');\n StorageHelper.setLocalStorageItem({\n key: dismissKey,\n value: '1',\n ttl: 1000 * 60 * 60 * 24\n });\n setIsOpen(false);\n onClose();\n };\n\n const mouseOutListener = event => handleShowExitModal(event, () => setIsOpen(true));\n\n const removeListener = () => {\n document.removeEventListener('mouseout', mouseOutListener);\n };\n\n useEffect(() => {\n if (isOpen) {\n document.querySelector('body').classList.add('jf-exit-modal');\n removeListener();\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (isOpen) {\n tickAction({ action: 'seen' });\n }\n }, [isOpen, tickAction]);\n\n useEffect(() => {\n document.addEventListener('mouseout', mouseOutListener);\n return removeListener;\n }, []);\n\n return isDismissed\n ? <>>\n : (\n \n \n {children}\n \n \n \n );\n};\n\nExitModal.propTypes = {\n children: node.isRequired,\n title: string.isRequired,\n onClose: () => {}\n};\n\nExitModal.defaultProps = {\n onClose: () => {}\n};\n\nexport default ExitModal;\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 = (target = '') => {\n if (target) {\n const utmContent = urlSearchParams.get('utm_content');\n urlSearchParams.set('utm_content', `${utmContent}-${target}`);\n }\n return `${directURL}?${urlSearchParams.toString()}`;\n };\n\n return {\n getUrl\n };\n};\n"],"names":["AcademyExitModal","getUrl","useUtm","directURL","redirectUrl","_jsx","ExitModal","title","_jsxs","div","className","a","href","target","span","t","strong","img","src","alt","width","height","dialogContainerCVA","cva","dialogCVA","primary","Dialog","props","open","onClose","initialFocus","zIndex","children","ariaLabel","noFade","_as","size","rest","HeadlessDialog","InnerComponent","DialogBody","cx","DialogCloseButton","forwardRef","ref","Button","IconXmark","handleShowExitModal","event","show","clientX","clientY","relatedTarget","toElement","tagName","toLowerCase","vpWidth","Math","max","document","documentElement","clientWidth","window","innerWidth","querySelector","classList","contains","isOpen","setIsOpen","useState","type","campaignType","assetsVersion","useAssetInfo","assetType","useAssetType","tickAction","useActionManager","dismissKey","getDismissStorageItemKey","isDismissed","checkIsAssetDismissed","handleOnClose","action","remove","StorageHelper","key","value","ttl","mouseOutListener","removeListener","removeEventListener","useEffect","add","addEventListener","id","data-campaign-type","onClick","propTypes","node","string","defaultProps","trackOnceActions","actionManager","assetInfo","useAssetManagerContext","assetYear","targetParam","trackOnce","trackOnceParam","includes","_target","registerJotformAction","useFlyinUtm","customUtmCampaign","utm_campaign","utmCampaign_","utmCampaign","campaign","medium","content","location","pathname","replace","urlSearchParams","URLSearchParams","utmParams","utm_source","filter","f","join","utm_medium","utm_content","Object","keys","forEach","paramKey","append","url","toString","source","utmContent","get","set"],"mappings":"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"}