{"version":3,"file":"3723.bundle.4ba595dd67381b3893bc.js","mappings":"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","sources":["webpack://fieldlevel.app/./app-core/components/CopyLink/CopyLink.jsx","webpack://fieldlevel.app/./app-core/components/CopyLink/CopyLink.module.css","webpack://fieldlevel.app/./app-core/components/Responsive/Responsive.module.css","webpack://fieldlevel.app/./app-core/components/Responsive/Responsive.jsx","webpack://fieldlevel.app/./app-core/icons/LinkIcon.jsx","webpack://fieldlevel.app/./app-core/components/ShareControl/ShareControl.jsx","webpack://fieldlevel.app/./app-core/components/ShareControl/ShareControl.module.css","webpack://fieldlevel.app/./app-core/hooks/useAnalytics.js","webpack://fieldlevel.app/./app-core/routes/profile/utility/makeAthleteVideoDetailsShareService.js","webpack://fieldlevel.app/./app-core/utility/clipboard.js"],"sourcesContent":["import { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { TextInput, Button } from '@fieldlevel/playbook';\r\n\r\nimport { copyToClipboard } from '@appCore/utility/clipboard';\r\n\r\nimport * as styles from './CopyLink.module.css';\r\n\r\nconst CopyLink = ({ link, onCopyLink, buttonRef }) => {\r\n const [label, setLabel] = useState('Copy link');\r\n\r\n function handleCopyClick(event) {\r\n setLabel('Copied!');\r\n event.preventDefault();\r\n copyToClipboard(link);\r\n onCopyLink && onCopyLink();\r\n }\r\n\r\n return (\r\n <div className=\"relative\">\r\n <div className={styles.ReadOnlyInputContainer}>\r\n <TextInput readonly value={link} title={link} />\r\n </div>\r\n <div className={styles.CopyButtonContainer}>\r\n <Button ref={buttonRef} onClick={handleCopyClick}>\r\n {label}\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nCopyLink.propTypes = {\r\n link: PropTypes.string.isRequired,\r\n onCopyLink: PropTypes.func,\r\n buttonRef: PropTypes.object\r\n};\r\n\r\nexport default CopyLink;\r\n","// extracted by mini-css-extract-plugin\nvar _1 = \"FL-CopyLink__CopyButtonContainer\";\nvar _2 = \"FL-CopyLink__ReadOnlyInputContainer\";\nexport { _1 as \"CopyButtonContainer\", _2 as \"ReadOnlyInputContainer\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"FL-Responsive__lg\";\nvar _2 = \"FL-Responsive__md\";\nvar _3 = \"FL-Responsive__sm\";\nvar _4 = \"FL-Responsive__xl\";\nvar _5 = \"FL-Responsive__xs\";\nvar _6 = \"FL-Responsive__xxl\";\nexport { _1 as \"lg\", _2 as \"md\", _3 as \"sm\", _4 as \"xl\", _5 as \"xs\", _6 as \"xxl\" }\n","import PropTypes from 'prop-types';\r\nimport cx from 'classnames';\r\n\r\nimport * as styles from './Responsive.module.css';\r\n\r\nconst breakpoints = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\r\n\r\nconst Responsive = ({ showAt, hideAt, children }) => {\r\n if (showAt == undefined && hideAt == undefined) {\r\n console.error('You must define either the showAt or hideAt prop.');\r\n }\r\n\r\n const showAtIndex = showAt == undefined ? 0 : breakpoints.findIndex(x => x == showAt);\r\n const hideAtIndex = hideAt == undefined ? breakpoints.length : breakpoints.findIndex(x => x == hideAt);\r\n\r\n const classes = breakpoints.reduce((acc, val, index) => {\r\n if (index >= showAtIndex && index < hideAtIndex) {\r\n acc.push(styles[val]);\r\n }\r\n return acc;\r\n }, []);\r\n\r\n return <div className={cx(classes)}>{children}</div>;\r\n};\r\n\r\nResponsive.propTypes = {\r\n showAt: PropTypes.oneOf(breakpoints),\r\n hideAt: PropTypes.oneOf(breakpoints),\r\n children: PropTypes.node.isRequired\r\n};\r\n\r\nexport default Responsive;\r\n","const LinkIcon = props => {\r\n return (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"2\"\r\n fill=\"none\"\r\n strokeLinejoin=\"round\"\r\n strokeLinecap=\"round\"\r\n stroke=\"currentColor\"\r\n {...props}\r\n >\r\n <path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\" />\r\n <path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\" />\r\n </svg>\r\n );\r\n};\r\n\r\nexport default LinkIcon;\r\n","import { useRef, useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useInView } from 'react-intersection-observer';\r\n\r\nimport { Modal, Button, Link, EmailMinor, MessagingMajor, Icon } from '@fieldlevel/playbook';\r\n\r\nimport TwitterMajor from '@appCore/icons/TwitterMajor';\r\nimport LinkIcon from '@appCore/icons/LinkIcon';\r\nimport FacebookMajor from '@appCore/icons/FacebookMajor';\r\nimport { copyToClipboard } from '@appCore/utility/clipboard';\r\nimport { openShareSheet } from '@appCore/utility/nativeBridge';\r\nimport Responsive from '@appCore/components/Responsive/Responsive';\r\nimport CopyLink from '@appCore/components/CopyLink/CopyLink';\r\nimport useAnalytics from '@appCore/hooks/useAnalytics';\r\n\r\nimport * as styles from './ShareControl.module.css';\r\n\r\nconst ShareLink = ({\r\n link,\r\n popup,\r\n analyticsCategory,\r\n analyticsName,\r\n analyticsOptions,\r\n children,\r\n natsAnalyticsOptions\r\n}) => {\r\n const { logClick } = useAnalytics(analyticsCategory, analyticsName, analyticsOptions, true, natsAnalyticsOptions);\r\n\r\n function openLink(event) {\r\n logClick();\r\n\r\n if (popup) {\r\n event.preventDefault();\r\n window.open(link, 'share-dialog', 'height=700,width=600');\r\n }\r\n }\r\n\r\n return (\r\n <Link unstyled href={link} onClick={openLink}>\r\n {children}\r\n </Link>\r\n );\r\n};\r\n\r\nconst ShareButton = props => {\r\n const { shrinkIcon = true } = props;\r\n return (\r\n <div className={shrinkIcon ? styles.ShrinkIcon : undefined}>\r\n <Button {...props} />\r\n </div>\r\n );\r\n};\r\n\r\nShareButton.propTypes = {\r\n shrinkIcon: PropTypes.bool\r\n};\r\n\r\nconst ShareForm = ({ shareService, onCopy }) => {\r\n useAnalytics(shareService.getAnalyticsCategory(), 'Share Control', shareService.getAnalyticsOptions());\r\n const { logClick } = useAnalytics(\r\n shareService.getAnalyticsCategory(),\r\n 'Share - Copy',\r\n shareService.getAnalyticsOptions(),\r\n false,\r\n shareService.getNatsAnalyticsOptions && shareService.getNatsAnalyticsOptions()\r\n );\r\n\r\n const buttonRef = useRef(null);\r\n\r\n useEffect(() => {\r\n buttonRef.current.focus();\r\n }, []);\r\n\r\n function handleCopy() {\r\n logClick();\r\n onCopy && onCopy();\r\n }\r\n\r\n return (\r\n <div>\r\n <div className=\"mb-2 text-body font-bold\">Shareable Link</div>\r\n <CopyLink link={shareService.getCopyUrl()} onCopyLink={handleCopy} buttonRef={buttonRef} />\r\n <div className=\"mt-6 text-body font-bold\">Share On</div>\r\n <div className=\"flex gap-2 mt-2\">\r\n <ShareLink\r\n link={shareService.getEmailLink()}\r\n popup\r\n analyticsCategory={shareService.getAnalyticsCategory()}\r\n analyticsName=\"Share - Email\"\r\n analyticsOptions={shareService.getAnalyticsOptions()}\r\n natsAnalyticsOptions={\r\n shareService.getNatsAnalyticsOptions && shareService.getNatsAnalyticsOptions()\r\n }\r\n >\r\n <ShareButton shrinkIcon={false} icon={EmailMinor}>\r\n Email\r\n </ShareButton>\r\n </ShareLink>\r\n <ShareLink\r\n link={shareService.getTwitterLink()}\r\n popup\r\n analyticsCategory={shareService.getAnalyticsCategory()}\r\n analyticsName=\"Share - Twitter\"\r\n analyticsOptions={shareService.getAnalyticsOptions()}\r\n natsAnalyticsOptions={\r\n shareService.getNatsAnalyticsOptions && shareService.getNatsAnalyticsOptions()\r\n }\r\n >\r\n <ShareButton icon={TwitterMajor}>Twitter</ShareButton>\r\n </ShareLink>\r\n <ShareLink\r\n link={shareService.getFacebookLink()}\r\n popup\r\n analyticsCategory={shareService.getAnalyticsCategory()}\r\n analyticsName=\"Share - Facebook\"\r\n analyticsOptions={shareService.getAnalyticsOptions()}\r\n natsAnalyticsOptions={\r\n shareService.getNatsAnalyticsOptions && shareService.getNatsAnalyticsOptions()\r\n }\r\n >\r\n <ShareButton icon={FacebookMajor}>Facebook</ShareButton>\r\n </ShareLink>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nconst MobileShareListItem = props => <div className=\"flex items-center gap-4 py-4 px-3\">{props.children}</div>;\r\n\r\nconst MobileShareList = ({ shareService, onCopy }) => {\r\n const { logImpression: logControlImpression } = useAnalytics(\r\n shareService.getAnalyticsCategory(),\r\n 'Share Control',\r\n shareService.getAnalyticsOptions(),\r\n false,\r\n shareService.getNatsAnalyticsOptions && shareService.getNatsAnalyticsOptions()\r\n );\r\n\r\n const { logImpression: logSmsImpression, logClick: logSmsClick } = useAnalytics(\r\n shareService.getAnalyticsCategory(),\r\n 'Share - Sms',\r\n shareService.getAnalyticsOptions(),\r\n false,\r\n shareService.getNatsAnalyticsOptions && shareService.getNatsAnalyticsOptions()\r\n );\r\n\r\n const { logImpression: logEmailImpression, logClick: logEmailClick } = useAnalytics(\r\n shareService.getAnalyticsCategory(),\r\n 'Share - Email',\r\n shareService.getAnalyticsOptions(),\r\n false,\r\n shareService.getNatsAnalyticsOptions && shareService.getNatsAnalyticsOptions()\r\n );\r\n\r\n const { logImpression: logTwitterImpression, logClick: logTwitterClick } = useAnalytics(\r\n shareService.getAnalyticsCategory(),\r\n 'Share - Twitter',\r\n shareService.getAnalyticsOptions(),\r\n false,\r\n shareService.getNatsAnalyticsOptions && shareService.getNatsAnalyticsOptions()\r\n );\r\n\r\n const { logImpression: logFacebookImpression, logClick: logFacebookClick } = useAnalytics(\r\n shareService.getAnalyticsCategory(),\r\n 'Share - Facebook',\r\n shareService.getAnalyticsOptions(),\r\n false,\r\n shareService.getNatsAnalyticsOptions && shareService.getNatsAnalyticsOptions()\r\n );\r\n\r\n const { logImpression: logCopyImpression, logClick: logCopyClick } = useAnalytics(\r\n shareService.getAnalyticsCategory(),\r\n 'Share - Copy',\r\n shareService.getAnalyticsOptions(),\r\n false,\r\n shareService.getNatsAnalyticsOptions && shareService.getNatsAnalyticsOptions()\r\n );\r\n\r\n function handleCopy() {\r\n copyToClipboard(shareService.getCopyUrl());\r\n logCopyClick();\r\n onCopy && onCopy();\r\n }\r\n\r\n const [mobileShareListRef, isMobileShareListInView] = useInView({ triggerOnce: true });\r\n\r\n useEffect(() => {\r\n if (!isMobileShareListInView) return;\r\n\r\n logControlImpression();\r\n logSmsImpression();\r\n logEmailImpression();\r\n logTwitterImpression();\r\n logFacebookImpression();\r\n logCopyImpression();\r\n }, [isMobileShareListInView]);\r\n\r\n return (\r\n <div ref={mobileShareListRef}>\r\n <Link unstyled url={shareService.getSmsLink()} onClick={logSmsClick}>\r\n <MobileShareListItem>\r\n <span className=\"flex-0\">\r\n <Icon source={MessagingMajor} />\r\n </span>\r\n <span className=\"text-body-lg\">SMS Text</span>\r\n </MobileShareListItem>\r\n </Link>\r\n <Link unstyled url={shareService.getEmailLink()} target=\"_blank\" onClick={logEmailClick}>\r\n <MobileShareListItem>\r\n <span className={`flex-0 ${styles.EnlargeIcon}`}>\r\n <Icon source={EmailMinor} />\r\n </span>\r\n <span className=\"text-body-lg\">Email</span>\r\n </MobileShareListItem>\r\n </Link>\r\n <Link unstyled url={shareService.getTwitterLink()} target=\"_blank\" onClick={logTwitterClick}>\r\n <MobileShareListItem>\r\n <span className=\"flex-0\">\r\n <Icon source={TwitterMajor} />\r\n </span>\r\n <span className=\"text-body-lg\">Twitter</span>\r\n </MobileShareListItem>\r\n </Link>\r\n <Link unstyled url={shareService.getFacebookLink()} target=\"_blank\" onClick={logFacebookClick}>\r\n <MobileShareListItem>\r\n <span className=\"flex-0\">\r\n <Icon source={FacebookMajor} />\r\n </span>\r\n <span className=\"text-body-lg\">Facebook</span>\r\n </MobileShareListItem>\r\n </Link>\r\n <Link unstyled onClick={handleCopy}>\r\n <MobileShareListItem>\r\n <span className=\"flex-0\">\r\n <Icon source={LinkIcon} />\r\n </span>\r\n <span className=\"text-body-lg\">Copy Link</span>\r\n </MobileShareListItem>\r\n </Link>\r\n </div>\r\n );\r\n};\r\n\r\nconst ShareControl = ({ heading, show, shareService, onCopy, onDismiss }) => {\r\n const [openModal, setOpenModal] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!show) return;\r\n\r\n const openedNative = openShareSheet(\r\n shareService.getMessage(shareService.getNativeUrl(), false),\r\n shareService.getSubject(),\r\n shareService.getAnalyticsCategory()\r\n );\r\n\r\n if (openedNative) {\r\n //Since we are in the native app, we cannot send a dispatch / onclose event back ( native is in control of share sheet) so we will assume that it is closed.\r\n onDismiss();\r\n return;\r\n }\r\n\r\n setOpenModal(true);\r\n }, [show, shareService]);\r\n\r\n const handleDismiss = () => {\r\n setOpenModal(false);\r\n onDismiss && onDismiss();\r\n };\r\n\r\n const handleMobileCopy = () => {\r\n onCopy && onCopy();\r\n handleDismiss();\r\n };\r\n\r\n return (\r\n <Modal title={heading} open={openModal} onDismiss={handleDismiss}>\r\n <Responsive hideAt=\"lg\">\r\n <MobileShareList shareService={shareService} onCopy={handleMobileCopy} />\r\n </Responsive>\r\n <Responsive showAt=\"lg\">\r\n <div className=\"mb-2\">\r\n <ShareForm shareService={shareService} onCopy={onCopy} />\r\n </div>\r\n </Responsive>\r\n </Modal>\r\n );\r\n};\r\n\r\nShareControl.propTypes = {\r\n heading: PropTypes.string.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n shareService: PropTypes.object.isRequired,\r\n onCopy: PropTypes.func,\r\n onDismiss: PropTypes.func\r\n};\r\n\r\nexport { ShareControl, ShareForm };\r\n","// extracted by mini-css-extract-plugin\nvar _1 = \"FL-ShareControl__EnlargeIcon\";\nvar _2 = \"FL-ShareControl__ShrinkIcon\";\nexport { _1 as \"EnlargeIcon\", _2 as \"ShrinkIcon\" }\n","import { useEffect } from 'react';\r\n\r\nimport * as GoogleAnalytics from '@appCore/utility/googleAnalytics';\r\n\r\nconst useAnalytics = (category, name, options, autoLogImpression = true) => {\r\n useEffect(() => {\r\n if (autoLogImpression) {\r\n logImpression();\r\n }\r\n }, []);\r\n\r\n const logEvent = action => {\r\n if (!category) {\r\n console.warn('useAnalytics :: No category provided for logEvent');\r\n return;\r\n }\r\n\r\n if (!action) {\r\n console.warn('useAnalytics :: No action provided for logEvent');\r\n return;\r\n }\r\n\r\n GoogleAnalytics.logEvent(action, category, options);\r\n };\r\n\r\n const logImpression = () => {\r\n if (!category) {\r\n return;\r\n }\r\n\r\n let mergedOptions = Object.assign({ isNonInteraction: true }, options);\r\n GoogleAnalytics.logImpression(`${name} Viewed`, category, mergedOptions);\r\n };\r\n\r\n function logClick() {\r\n logEvent(`${name} Clicked`);\r\n }\r\n\r\n return {\r\n logClick,\r\n logImpression,\r\n logEvent\r\n };\r\n};\r\n\r\nexport default useAnalytics;\r\n","import { FACEBOOK_APP_ID, ENUM_UTM_MEDIUM, WWW_URL } from '@appCore/constants/system';\r\nimport enumHelper from '@appCore/services/enumHelper';\r\n\r\nconst makeAthleteVideoDetailsShareService = ({\r\n athleteDisplayName,\r\n athleteIsCommitted,\r\n sportEnum,\r\n videoDetailsPath,\r\n viewerContext\r\n}) => {\r\n const sport = enumHelper.toSportEnum(sportEnum);\r\n const service = {};\r\n\r\n service.getAnalyticsCategory = getAnalyticsCategory;\r\n service.getAnalyticsOptions = getAnalyticsOptions;\r\n service.getUrl = getUrl;\r\n service.getCopyUrl = getCopyUrl;\r\n service.getNativeUrl = getNativeUrl;\r\n service.getEmailLink = getEmailLink;\r\n service.getSmsLink = getSmsLink;\r\n service.getTwitterLink = getTwitterLink;\r\n service.getFacebookLink = getFacebookLink;\r\n service.getSubject = getSubject;\r\n service.getMessage = getMessage;\r\n\r\n function getAnalyticsCategory() {\r\n return 'Public Video Details Interaction';\r\n }\r\n\r\n function getAnalyticsOptions() {\r\n const options = { label: null };\r\n\r\n if (viewerContext) {\r\n if (viewerContext.IsViewingSelf) {\r\n options.label = 'Self';\r\n } else if (viewerContext.IsConnectedCoach) {\r\n options.label = 'Promoter';\r\n } else if (viewerContext.IsVerifiedRecruiterInSport) {\r\n options.label = 'Recruiter';\r\n } else if (viewerContext.IsAnAthlete) {\r\n options.label = 'Athlete';\r\n } else if (viewerContext.IsACoach) {\r\n options.label = 'Coach';\r\n }\r\n } else {\r\n options.label = 'Public';\r\n }\r\n\r\n return options;\r\n }\r\n\r\n function getSubject() {\r\n return `View ${\r\n viewerContext && viewerContext.IsViewingSelf ? 'my' : athleteDisplayName + \"'s\"\r\n } ${sport.LabelNoGender.toLowerCase()} highlight video on FieldLevel`;\r\n }\r\n\r\n function getMessage(url, useSocialHandle) {\r\n return `View ${\r\n viewerContext && viewerContext.IsViewingSelf ? 'my' : athleteDisplayName + \"'s\"\r\n } ${sport.LabelNoGender.toLowerCase()} highlight video on ${useSocialHandle ? '@fieldlevel' : 'FieldLevel'} ${\r\n athleteIsCommitted ? '' : '#uncommitted'\r\n } ${url || ''}`;\r\n }\r\n\r\n function getUrl(mediumEnum) {\r\n return WWW_URL + videoDetailsPath + (mediumEnum ? '?m=' + mediumEnum.Value : '');\r\n }\r\n\r\n function getCopyUrl() {\r\n return getUrl(ENUM_UTM_MEDIUM.Share);\r\n }\r\n\r\n function getNativeUrl() {\r\n return getUrl(ENUM_UTM_MEDIUM.Native);\r\n }\r\n\r\n function getEmailLink() {\r\n const emailUrl = getUrl(ENUM_UTM_MEDIUM.Email);\r\n\r\n return `mailto:?subject=${encodeURIComponent(getSubject())}&body=%0D%0A%0D%0A${encodeURIComponent(emailUrl)}`;\r\n }\r\n\r\n function getSmsLink() {\r\n const smsUrl = getUrl(ENUM_UTM_MEDIUM.Sms);\r\n const message = getMessage(smsUrl, false);\r\n\r\n return `sms:?&body=${encodeURIComponent(message)}`;\r\n }\r\n\r\n function getTwitterLink() {\r\n const twitterUrl = getCopyUrl();\r\n const message = getMessage(twitterUrl, true);\r\n\r\n return `https://twitter.com/intent/tweet?text=${encodeURIComponent(message)}`;\r\n }\r\n\r\n function getFacebookLink() {\r\n const redirectUrl = 'https://www.facebook.com/dialog/return/close#_=_';\r\n return `https://www.facebook.com/dialog/share?display=popup&app_id=${FACEBOOK_APP_ID}"e=${encodeURIComponent(\r\n getMessage()\r\n )}&href=${getCopyUrl()}&redirect_uri=${redirectUrl}`;\r\n }\r\n\r\n return service;\r\n\r\n function createService(athlete, sportEnum, video, viewerContext, isCommitted) {}\r\n\r\n return { create: createService };\r\n};\r\n\r\nexport default makeAthleteVideoDetailsShareService;\r\n","function isOS() {\r\n return navigator.userAgent.match(/ipad|iphone/i);\r\n}\r\n\r\nexport function copyToClipboard(text) {\r\n let range;\r\n let selection;\r\n let textArea;\r\n\r\n // copy action has to be on an element within the current user focus for some browsers.\r\n // this is undocumented and was a total pain in the ass to figure out.\r\n // if we have an active element, use it as the parent so this works inside modals with focus.\r\n let parent = document.activeElement || document.body;\r\n textArea = document.createElement('textArea');\r\n textArea.value = text;\r\n textArea.readOnly = true; // prevents iOS from trying to scroll to the dummy textArea\r\n textArea.style.position = 'absolute';\r\n textArea.style.top = '-1000px';\r\n textArea.style.left = '-1000px';\r\n parent.appendChild(textArea);\r\n\r\n if (isOS()) {\r\n range = document.createRange();\r\n range.selectNodeContents(textArea);\r\n selection = window.getSelection();\r\n selection.removeAllRanges();\r\n selection.addRange(range);\r\n textArea.setSelectionRange(0, 999999);\r\n } else {\r\n textArea.select();\r\n }\r\n\r\n document.execCommand('copy');\r\n parent.removeChild(textArea);\r\n}\r\n"],"names":["CopyLink","_ref","link","onCopyLink","buttonRef","label","setLabel","useState","_jsxs","className","children","_jsx","TextInput","readonly","value","title","Button","ref","onClick","event","preventDefault","copyToClipboard","propTypes","PropTypes","isRequired","_1","_2","_3","_4","_5","_6","breakpoints","Responsive","showAt","hideAt","undefined","console","error","showAtIndex","findIndex","x","hideAtIndex","length","classes","reduce","acc","val","index","push","styles","cx","props","xmlns","width","height","viewBox","strokeWidth","fill","strokeLinejoin","strokeLinecap","stroke","d","ShareLink","popup","analyticsCategory","analyticsName","analyticsOptions","natsAnalyticsOptions","logClick","useAnalytics","Link","unstyled","href","window","open","ShareButton","shrinkIcon","ShareForm","_ref2","shareService","onCopy","getAnalyticsCategory","getAnalyticsOptions","getNatsAnalyticsOptions","useRef","useEffect","current","focus","getCopyUrl","getEmailLink","icon","EmailMinor","getTwitterLink","TwitterMajor","getFacebookLink","FacebookMajor","MobileShareListItem","MobileShareList","_ref3","logImpression","logControlImpression","logSmsImpression","logSmsClick","logEmailImpression","logEmailClick","logTwitterImpression","logTwitterClick","logFacebookImpression","logFacebookClick","logCopyImpression","logCopyClick","mobileShareListRef","isMobileShareListInView","useInView","triggerOnce","url","getSmsLink","Icon","source","MessagingMajor","target","concat","LinkIcon","ShareControl","_ref4","heading","show","onDismiss","openModal","setOpenModal","openShareSheet","getMessage","getNativeUrl","getSubject","handleDismiss","Modal","handleMobileCopy","category","name","options","autoLogImpression","arguments","logEvent","action","GoogleAnalytics","warn","mergedOptions","Object","assign","isNonInteraction","athleteDisplayName","athleteIsCommitted","sportEnum","videoDetailsPath","viewerContext","sport","enumHelper","toSportEnum","service","IsViewingSelf","LabelNoGender","toLowerCase","useSocialHandle","getUrl","mediumEnum","WWW_URL","Value","ENUM_UTM_MEDIUM","Share","IsConnectedCoach","IsVerifiedRecruiterInSport","IsAnAthlete","IsACoach","Native","emailUrl","Email","encodeURIComponent","message","Sms","FACEBOOK_APP_ID","text","range","selection","textArea","parent","document","activeElement","body","createElement","readOnly","style","position","top","left","appendChild","navigator","userAgent","match","createRange","selectNodeContents","getSelection","removeAllRanges","addRange","setSelectionRange","select","execCommand","removeChild"],"sourceRoot":""}