{"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}&quote=${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":""}