{"version":3,"sources":["webpack:///./app/javascript/src/utils/reactRails.js","webpack:///./app/javascript/src/v4/App/ReviewerRedirect.js","webpack:///./app/javascript/src/utils/polyfills/cssVariables.js","webpack:///./app/javascript/src/v4/App/components/shared/CompletedActivities/index.js","webpack:///./app/javascript/src/v4/App/components/shared/ActionCount/index.js","webpack:///./app/javascript/src/v4/App/components/Navbar/ActivitiesCheckMark.js","webpack:///./app/javascript/src/v4/App/components/Navbar/BackButton.js","webpack:///./app/javascript/src/v4/App/components/Navbar/BrandLogo.js","webpack:///./app/javascript/src/v4/App/components/Navbar/IncentiveProgress.js","webpack:///./app/javascript/src/v4/App/components/Navbar/ProfileButton.js","webpack:///./app/javascript/src/v4/App/components/Navbar/index.js","webpack:///./app/javascript/src/v4/App/components/LegalLinks/styles.module.scss","webpack:///./app/javascript/src/v4/App/components/LegalLinks/index.js"],"names":["CLASS_NAME_ATTR","mountComponent","Component","store","selector","root","document","querySelector","className","getAttribute","propsJson","props","JSON","parse","authLink","setContext","_","token","headers","override","useAdminToken","authToken","user","newHeaders","accept","authorization","uri","process","wsUri","httpLink","createHttpLink","credentials","batchHttpLink","BatchHttpLink","batch","notASubscription","split","operation","getContext","important","concat","cable","createConsumer","client","ApolloClient","link","query","definitions","some","kind","ActionCableLink","channelName","cache","InMemoryCache","possibleTypes","defaultOptions","watchQuery","fetchPolicy","errorPolicy","message","Error","ReactDOM","render","QUERY","gql","ReviewerRedirect","dealId","useParams","page","queryString","window","location","search","useQuery","variables","hashid","pageId","loading","error","data","quikly","pages","edges","node","pathToPage","pathname","params","stringify","path","to","hash","CSS","supports","linkElements","querySelectorAll","rootDef","varNameTBD","length","innerHTML","match","map","v","array","key","value","forEach","linkElement","href","fetch","then","response","ok","text","theCSS","newCSS","cssWithVars","theVars","theVar","rx","RegExp","replace","replaceVarWithVal","styleNode","createElement","type","getElementsByTagName","appendChild","parentNode","removeChild","CompletedActivities","completedActivities","activityScoreType","activities","activity","earned","earnedTime","time","action","Math","random","replaceFriendsText","feedLabel","feedSublabel","activitiesHeader","activitiesList","propTypes","PropTypes","isRequired","string","ActionCount","this","claimRules","claimActionsLabel","wantIn","claimActionsCompleted","actionCount","actionCountDisplay","classNames","PureComponent","ActivitiesCheckMark","useState","popoverOpen","setPopoverOpen","useSessionCookie","sessionCookie","removeSessionCookie","dealHashid","newCompletedAction","showUnread","iconName","onClick","role","ariaLabel","withRouter","history","square","transparent","textBrand","push","goBack","Query","console","log","logo","brand","src","alt","useContext","UIContext","state","clockTime","clockTimeEarned","clockSetTo","join","symbol","tabIndex","viewer","brandSlug","slug","email","M","track","properties","target","gaAction","gaLabel","Navbar","children","element","setElement","useEffect","getElementById","createPortal","module","exports","LegalLinks","additionalClassNames","dealHashidProp","Wrapper","styles","brandName","name","brandPrivacyPolicyUrl","privacyPolicyUrl","legalFooterHtml","rulesLabel","termsUrl","quiklyPrivacyPolicyUrl","dangerouslySetInnerHTML","__html","linkTo","title","rel"],"mappings":"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","file":"js/7-d10ab28d6ce216eedfc6.chunk.js","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n ApolloProvider, // ApolloProvider from this package doesn't seem to like hooks\n ApolloClient,\n createHttpLink,\n InMemoryCache,\n split,\n} from '@apollo/client';\nimport { setContext } from '@apollo/client/link/context';\nimport { BatchHttpLink } from '@apollo/client/link/batch-http';\nimport { createConsumer } from '@rails/actioncable';\nimport ActionCableLink from 'graphql-ruby-client/subscriptions/ActionCableLink';\nimport possibleTypes from './possibleTypes.json';\n\n// This attribute holds the name of component which should be mounted\n// example: `data-react-class=\"MyApp.Items.EditForm\"`\nconst CLASS_NAME_ATTR = 'data-react-class';\n\n// helper method for the mount and unmount methods to find the\n// `data-react-class` DOM elements\nconst PROPS_ATTR = 'data-react-props';\n\nconst mountComponent = (Component, store) => {\n const selector = `[${CLASS_NAME_ATTR}]`;\n const root = document.querySelector(selector);\n const className = root.getAttribute(CLASS_NAME_ATTR);\n const propsJson = root.getAttribute(PROPS_ATTR);\n const props = propsJson && JSON.parse(propsJson);\n const authLink = setContext((_, { headers }) => {\n let token;\n\n if (props.override && props.override.token) {\n ({ token } = props.override);\n } else if (props.useAdminToken) {\n token = props.authToken;\n } else if (props.user) {\n token = props.user.authToken;\n } else {\n token = null;\n }\n\n const newHeaders = {\n ...headers,\n accept: 'application/json; charset=utf-8',\n };\n\n // return the headers to the context so httpLink can read them\n if (!token) {\n return { headers: newHeaders };\n }\n\n return {\n headers: {\n ...newHeaders,\n authorization: `Bearer ${token}`,\n },\n };\n });\n\n const uri = process.env.API_URL;\n const wsUri = process.env.WEBSOCKET_URL;\n const httpLink = createHttpLink({\n uri,\n credentials: 'include',\n });\n const batchHttpLink = new BatchHttpLink({\n uri,\n credentials: 'include',\n headers: { batch: 'true' },\n });\n\n const hasSubscriptionOperation = ({ query: { definitions } }) => {\n return definitions.some(\n ({ kind, operation }) =>\n kind === 'OperationDefinition' && operation === 'subscription',\n );\n };\n\n const notASubscription = split(\n operation => {\n return operation.getContext().important === true;\n },\n authLink.concat(httpLink), // if the test is true -- debatch\n authLink.concat(batchHttpLink), // otherwise, batching is fine\n );\n\n const cable = createConsumer(() => {\n let token;\n\n if (props.override && props.override.token) {\n ({ token } = props.override);\n } else if (props.useAdminToken) {\n token = props.authToken;\n } else if (props.user) {\n token = props.user.authToken;\n } else {\n token = null;\n }\n\n if (token) {\n return `${wsUri}?access_token=${token}`;\n }\n return wsUri;\n });\n\n const client = new ApolloClient({\n link: split(\n hasSubscriptionOperation,\n new ActionCableLink({ cable, channelName: 'GraphQLChannel' }),\n notASubscription,\n ),\n cache: new InMemoryCache({\n possibleTypes,\n }),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: 'cache-and-network',\n errorPolicy: 'all',\n },\n },\n });\n\n if (typeof Component === 'undefined') {\n const message = `Cannot find component: ${className}`;\n const error = new Error(\n `${message}. Make sure your component is globally available to render.\"`,\n );\n throw error;\n } else {\n ReactDOM.render(\n \n \n ,\n root,\n );\n }\n};\n\nexport default mountComponent;\n","import React from 'react';\nimport { useQuery, gql } from '@apollo/client';\nimport { Redirect, useParams } from 'react-router-dom';\nimport queryString from 'query-string';\n\nconst QUERY = gql`\n query getReviewerRedirect($hashid: String!, $pageId: String!) {\n quikly(hashid: $hashid) {\n id\n pages(pageId: $pageId) {\n edges {\n node {\n pathToPage\n }\n }\n }\n }\n }\n`;\n\nconst ReviewerRedirect = () => {\n const { dealId } = useParams();\n const parsedUrl = queryString.parse(window.location.search);\n const { page } = parsedUrl;\n const { loading, error, data } = useQuery(QUERY, {\n variables: { hashid: dealId, pageId: page },\n });\n\n if (loading) return null;\n\n if (error) {\n return null;\n }\n\n const {\n quikly: {\n pages: { edges: pages },\n },\n } = data;\n\n const [pathname, params] = pages[0].node.pathToPage.split('?');\n\n const search = queryString.stringify({\n ...queryString.parse(params),\n ...queryString.parse(window.location.search),\n });\n\n const path = pathname.split('#');\n\n return (\n \n );\n};\n\nexport default ReviewerRedirect;\n","if (\n !window.CSS ||\n !window.CSS.supports ||\n !window.CSS.supports('(--quikly: blue)')\n) {\n const linkElements = document.querySelectorAll('link[rel=\"stylesheet\"]');\n const rootDef = document.querySelectorAll('style[title=\"root\"]');\n const varsToBeReplaced = rootDef.length\n ? rootDef[0].innerHTML.match(/(--.+:.+;)/g)\n : [];\n const varNameTBD = varsToBeReplaced\n .map(v => v.split(/:\\s*/))\n .map(array => ({ key: array[0], value: array[1] }));\n\n const replaceVarWithVal = (cssWithVars, theVars) => {\n let newCSS = cssWithVars;\n theVars.forEach(theVar => {\n const rx = new RegExp(`var\\\\(${theVar.key}(,)?\\s*#(.{3,6})\\\\);?`, 'g');\n newCSS = newCSS.replace(rx, theVar.value);\n });\n return newCSS;\n };\n\n linkElements.forEach(linkElement => {\n const href = linkElement.href;\n fetch(href).then(response => {\n if (response.ok) {\n response.text().then(theCSS => {\n const newCSS = replaceVarWithVal(theCSS, varNameTBD);\n const styleNode = document.createElement('style');\n styleNode.type = 'text/css';\n styleNode.innerHTML = newCSS;\n document.getElementsByTagName('head')[0].appendChild(styleNode);\n linkElement.parentNode.removeChild(linkElement);\n });\n }\n });\n });\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { List, Clock } from 'shared/components/campaign';\nimport './styles.scss';\n\nimport replaceFriendsText from '../../../utils/replaceFriendsText';\n\nconst CompletedActivities = ({ completedActivities, activityScoreType }) => {\n const earnHeadsUp = () => {\n if (activityScoreType === 'referrals') {\n return (\n
\n

Start Referring

\n

You have no referral activity.

\n
\n );\n }\n\n if (activityScoreType === 'entries') {\n return (\n
\n

Earn Extra Entries!

\n

\n You haven't earned any extra entries. The more you earn, the\n better your chances of winning the drawing!\n

\n
\n );\n }\n\n return (\n
\n

Earn Your Heads-up!

\n

\n You haven't earned any time yet. Earning a heads-up allows you to\n receive early notice, revealing when the promotion will go live. This\n is important since the quicker you claim, the better the reward!\n

\n
\n );\n };\n\n const activities = completedActivities.map(activity => {\n const earned = activity.node.earnedTime > 0;\n const time = activity.node[`${earned ? 'earned' : 'potential'}Time`];\n return (\n \n
\n \n {replaceFriendsText(activity.node.feedLabel)}\n \n \n {activity.node.feedSublabel || 'Completed Action'}\n \n
\n\n {activityScoreType === 'time' && (\n \n )}\n\n {activityScoreType === 'entries' && (\n
\n {time / 60}\n entries\n
\n )}\n \n );\n });\n\n const activitiesHeader = (\n \n
\n
Completed Actions
\n {activityScoreType === 'time' &&
Time
}\n
\n
\n );\n\n const activitiesList = (\n
\n \n {activities}\n \n
\n
\n );\n\n const hasActivities = completedActivities.length > 0;\n const main = hasActivities\n ? [activitiesHeader, activitiesList]\n : earnHeadsUp();\n\n return main;\n};\n\nCompletedActivities.propTypes = {\n completedActivities: PropTypes.array.isRequired,\n activityScoreType: PropTypes.string.isRequired,\n};\n\nexport default CompletedActivities;\n","import React, { PureComponent } from 'react';\nimport { Query } from '@apollo/client/react/components';\nimport { gql } from '@apollo/client';\nimport { string } from 'prop-types';\nimport classNames from 'classnames/bind';\nimport './styles.scss';\n\nconst QUERY = gql`\n query getActionCount($dealId: String!) {\n quikly(hashid: $dealId) {\n id\n claimRules {\n actionCount\n }\n claimActionsLabel: customContentFor(key: \"claim_actions_label\")\n wantIn {\n id\n claimActionsCompleted\n }\n }\n }\n`;\n\nclass ActionCount extends PureComponent {\n render() {\n const { className, dealId } = this.props;\n\n return (\n \n {({ loading, error, data }) => {\n if (loading || error) return null;\n\n const {\n quikly: { claimRules, claimActionsLabel, wantIn },\n } = data;\n\n if (!wantIn) {\n return null;\n }\n\n const { claimActionsCompleted } = wantIn;\n\n if (claimRules.length > 0) {\n if (claimRules[0].actionCount === 1) {\n return
;\n }\n }\n\n const actionCountDisplay = `${claimActionsCompleted}${\n claimRules.length > 0 && claimRules[0].actionCount > 0\n ? ` / ${claimRules[0].actionCount}`\n : ''\n }`;\n\n return (\n
\n {actionCountDisplay}\n
\n {claimActionsLabel}\n
\n
\n );\n }}\n \n );\n }\n}\n\nActionCount.propTypes = {\n dealId: string.isRequired,\n};\n\nexport default ActionCount;\n","// import { useQuery } from '@apollo/client';\nimport classNames from 'classnames/bind';\nimport { gql, useQuery } from '@apollo/client';\nimport React, { useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { Popover } from 'shared/components/campaign';\nimport CompletedActivities from 'v4/App/components/shared/CompletedActivities';\nimport { useSessionCookie } from 'v4/App/hooks';\n\nconst QUERY = gql`\n query activitiesCheckMark($dealHashid: String!) {\n quikly(hashid: $dealHashid) {\n id\n activityScoreType\n wantIn {\n id\n activities {\n edges {\n node {\n id\n action\n feedLabel\n feedSublabel\n earnedTime\n potentialTime\n }\n }\n }\n }\n }\n }\n`;\n\nexport default function ActivitiesCheckMark({ className }) {\n const [popoverOpen, setPopoverOpen] = useState(false);\n const { sessionCookie, removeSessionCookie } = useSessionCookie();\n const { dealId: dealHashid } = useParams();\n\n const { data, loading } = useQuery(QUERY, { variables: { dealHashid } });\n\n if (loading || (data && !data.quikly.wantIn)) {\n return null;\n } // on landing page. TODO: landing page own Navbar\n\n const {\n quikly: {\n activityScoreType,\n wantIn: {\n activities: { edges: activities },\n },\n },\n } = data || {\n quikly: {\n activityScoreType: 'none',\n wantIn: { activities: { edges: [] } },\n },\n };\n\n const newCompletedAction = 'newCompletedAction';\n const showUnread = sessionCookie[newCompletedAction]; // Can we get rid of this?\n const onPopoverClick = () => {\n removeSessionCookie(newCompletedAction);\n setPopoverOpen(!popoverOpen);\n };\n return (\n
\n \n \n \n {showUnread &&
}\n
\n );\n}\n","import React from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { Button } from 'shared/components/campaign';\n\nconst BackButton = ({\n history,\n match: {\n params: { dealId: dealHashid },\n },\n onClick,\n className,\n}) => {\n const goBack = () => {\n if (window.location.hash === '#featured') {\n history.push(`/q/${dealHashid}/dashboard`);\n } else {\n history.goBack();\n }\n };\n\n return (\n
\n \n
\n );\n};\n\nexport default withRouter(BackButton);\n","import React from 'react';\nimport { Query } from '@apollo/client/react/components';\nimport { gql } from '@apollo/client';\nimport { withRouter } from 'react-router-dom';\nimport classNames from 'classnames/bind';\n\nconst QUERY = gql`\n query getBrandLogo($dealHashid: String!) {\n quikly(hashid: $dealHashid) {\n id\n brand {\n id\n logo\n }\n }\n }\n`;\n\nconst BrandLogo = ({\n location,\n match: {\n params: { dealId: dealHashid },\n },\n className,\n}) => (\n \n {({ loading, error, data }) => {\n if (loading) {\n return null;\n }\n\n if (error) {\n console.log(error);\n return null;\n }\n\n const {\n quikly: {\n brand: { logo },\n },\n } = data;\n\n return (\n
\n \"brand\n
\n );\n }}\n
\n);\n\nexport default withRouter(BrandLogo);\n","import React, { useContext } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { UIContext } from 'v4/App/providers/UIProvider';\nimport { Clock } from 'shared/components/campaign';\nimport ActionCount from 'v4/App/components/shared/ActionCount';\n\nconst IncentiveProgress = ({\n match: {\n params: { dealId: dealHashid },\n },\n className,\n activityScoreType,\n}) => {\n const {\n state: { clockTime, clockTimeEarned },\n } = useContext(UIContext);\n const clockSetTo = clockTime ? clockTime / 60 : 0;\n\n if (activityScoreType === 'referrals') {\n return ;\n }\n\n if (activityScoreType === 'entries') {\n return (\n
\n {clockSetTo}\n
\n \n {!clockTimeEarned && 'Potential '}\n Extra Entries\n \n
\n
\n );\n }\n\n if (activityScoreType === 'time') {\n return (\n \n );\n }\n\n return null;\n};\n\nexport default withRouter(IncentiveProgress);\n","import React from 'react';\nimport { Query } from '@apollo/client/react/components';\nimport { gql } from '@apollo/client';\nimport { withRouter } from 'react-router-dom';\nimport classNames from 'classnames/bind';\nimport M from 'utils/Metrics';\nimport { Button } from 'shared/components/campaign';\n\nconst QUERY = gql`\n query profileButton($dealHashid: String!) {\n quikly(hashid: $dealHashid) {\n id\n brand {\n id\n slug\n }\n }\n viewer {\n id\n email\n }\n }\n`;\n\nconst ProfileButton = ({\n match: {\n params: { dealId: dealHashid },\n },\n className,\n}) => {\n return (\n \n {({ loading, error, data }) => {\n if (loading) {\n return null;\n }\n\n if (error) {\n console.log(error);\n return null;\n }\n\n const {\n viewer,\n quikly: {\n brand: { slug: brandSlug },\n },\n } = data;\n\n const handleProfileClick = () => {\n M.track('clicks', {\n properties: { target: 'profile' },\n gaAction: 'Want In',\n gaLabel: 'profile',\n });\n window.location.href = `/${brandSlug}/q/${dealHashid}/profile`;\n };\n\n return (\n viewer.email && (\n
\n \n
\n )\n );\n }}\n
\n );\n};\n\nexport default withRouter(ProfileButton);\n","import { useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport './styles.scss';\n\nexport default function Navbar({ children }) {\n const [element, setElement] = useState(null);\n\n useEffect(() => {\n setElement(document.getElementById('navbar-portal'));\n }, []);\n\n if (!element) {\n return null;\n }\n\n return ReactDOM.createPortal(children, element);\n}\n\nexport { default as ActivitiesCheckMark } from './ActivitiesCheckMark';\nexport { default as BackButton } from './BackButton';\nexport { default as BrandLogo } from './BrandLogo';\nexport { default as IncentiveProgress } from './IncentiveProgress';\nexport { default as ProfileButton } from './ProfileButton';\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"LegalLinks\":\"q_3NI7j\"};","import React from 'react';\nimport { gql, useQuery } from '@apollo/client';\nimport { useParams } from 'react-router-dom';\nimport styles from './styles.module.scss';\n\nconst QUERY = gql`\n query getLegalLinks($dealHashid: String!) {\n quikly(hashid: $dealHashid) {\n id\n termsUrl\n privacyPolicyUrl\n brand {\n id\n name\n privacyPolicyUrl\n }\n rulesLabel\n legalFooterHtml: customContentFor(key: \"deal_legal_footer\")\n }\n }\n`;\n\n// allow passing dealHashid in as prop for Order/ShippingAddress\nexport default function LegalLinks({\n className: additionalClassNames,\n dealHashid: dealHashidProp,\n}) {\n const { dealId: dealHashid } = useParams();\n const { data, loading, error } = useQuery(QUERY, {\n variables: { dealHashid: dealHashidProp || dealHashid },\n });\n\n const Wrapper = ({ children }) => (\n
\n {children}\n
\n );\n\n if (loading) {\n return ;\n }\n\n if (error) {\n return (\n \n We had trouble loading the small print for this campaign. Please refresh\n the page.\n \n );\n }\n\n const {\n quikly: {\n brand: { name: brandName, privacyPolicyUrl: brandPrivacyPolicyUrl },\n legalFooterHtml,\n rulesLabel,\n termsUrl,\n privacyPolicyUrl: quiklyPrivacyPolicyUrl,\n },\n } = data;\n\n if (legalFooterHtml) {\n return (\n \n
\n \n );\n }\n\n const linkTo = (link, title) => {\n if (!link) {\n return null;\n }\n\n return (\n \n {title}\n \n );\n };\n\n return (\n \n {linkTo(termsUrl, rulesLabel ? `${rulesLabel},` : 'Rules,')}{' '}\n {linkTo(brandPrivacyPolicyUrl, `${brandName} Privacy Policy,`)}{' '}\n {linkTo(quiklyPrivacyPolicyUrl, 'Quikly Privacy Policy')}\n \n );\n}\n"],"sourceRoot":""}