{"version":3,"sources":["assets/images/loading.gif","assets/images/logo.png","assets/images/white_logo.png","components/Message.tsx","components/Loader.tsx","components/Header.tsx","components/Footer.tsx","utils/models/RedirectInfo.tsx","environments/env.ts","utils/apis/ExpertSurveyApi.tsx","utils/utilities.tsx","components/MessageBody.tsx","components/LinkToPopupRenderer.tsx","components/Onboarding.tsx","components/PaymentCompleted.tsx","components/PaymentDeferred.tsx","components/Payment.tsx","components/Redirect.tsx","components/HomeRedirect.tsx","components/Error.tsx","components/TermsAndConditions.tsx","components/Panel.tsx","components/LinkedinLogin.tsx","components/LinkedinVerification.tsx","components/Refer.tsx","components/NoInterest.tsx","components/LongRefer.tsx","components/ThanksForApplying.tsx","App.tsx","serviceWorker.js","index.tsx"],"names":["module","exports","Paragraph","Typography","Message","props","className","type","source","message","escapeHtml","onClick","handleButtonClick","Loader","src","loadingIcon","alt","handleLogoClick","logo","href","rel","RedirectInfoType","ModuleType","host","window","location","includes","replace","environment","API_BASE_PATH","REACT_APP_LINKEDIN_CLIENT_KEY","apiClient","axios","create","baseURL","responseType","headers","getRedirectInfoByGuid","guid","keyword","extraQueries","a","get","params","response","data","moduleType","saveSurveyExpertOptInAndTCAccepted","optIn","tcAccepted","surveyExpertInfo","patch","getOrCreateSurveyGuidForPanelExpert","panelId","panelExpertId","panelExpert","post","getSurveyExpertRybbonPayment","sendSurveyExpertRybbonPayment","getSurveyExpertLinkedinDetails","authCode","redirectUri","console","log","getSurveyKwStatusMapByRefId","refId","verifySurveyExpert","linkedinProfile","surveyExpertRegistrationId","email","transformResponse","verifySurveyExpertWithRegistration","payload","redirectToLinkWithExtraQueries","redirectToLink","curQueries","link","URL","linkParams","searchParams","forEach","queryParam","has","append","String","Title","MessageBody","header","gutter","style","marginTop","span","offset","level","fontSize","subtext","skipHtml","linkTarget","width","innerWidth","height","innerHeight","left","screenLeft","top","screenTop","sizeAndPositions","open","children","Text","Onboarding","Component","state","redirectToError","NotAcceptTermsClicked","this","showTerms","undefined","handleContinueClick","warning","setState","redirectLink","handleWarningClose","selectOptIn","event","target","value","selectTCAccepted","renderRedirectToError","to","shouldDisableContinue","render","align","termsHeader","renderers","LinkToPopupRenderer","Group","onChange","Button","showIcon","closable","onClose","optInMessage","endMessage","size","disabled","Payment","redirectToDeferred","redirectToCompleted","showPaymentSubmitMessage","showPaymentErrorMessage","loading","submitPayment","values","expertInfo","phone","paymentSubmitMessage","deferred","paymentErrorMessage","componentDidMount","rybbonGenerated","split","textBeforeInput","textAfterInput","showPaymentForm","showPaymentCompleted","PaymentCompleted","showPaymentDeffered","PaymentDeferred","labelCol","xs","sm","wrapperCol","onFinish","fields","name","Item","label","rules","required","hasFeedback","dependencies","getFieldValue","validator","rule","Promise","reject","resolve","valuePropName","htmlType","SurveyRedirect","redirectInfo","LINK","CUSTOM","handleGoToNewtonXClick","match","queries","queryString","parse","search","isPayment","paymentAmount","isMessage","MESSAGE","isLoading","isOnboarding","ONBOARDING","shouldRedirect","isOldSurveyWithNoHeader","URLSearchParams","HomeRedirect","origin","margin","textDecoration","Panel","LinkedinLogin","clientId","scope","callback","callbackLinkedIn","text","LinkedinVerification","redirectToSurvey","redirectToThanksForApplying","renderRedirectToSurvey","renderRedirectToThanksForApplying","submitProfileUrl","profile","buildProfileUrl","surveyRegistrationId","res","requireManualVerification","test","transform","Refer","messageToDisplay","deactivateRequest","redirectToSuccess","redirectToNoInterest","showLinkedinLogin","redirectToNoLinkedIn","handleYesClick","handleNoClick","handleNoLinkedInClick","renderErrorMessage","renderLoader","renderLongRefer","error","code","surveyRequestKwStatusMapInfo","showLinkedLogin","showLinkedinButton","showLongRefer","display","LongRefer","waringMessage","waringDescription","requiredFieldMissing","professionalEmailMissing","emailDomainNotMatching","emailPopoverContent","validateRequiredFields","firstName","trim","lastName","companyUrl","jobRole","country","validateEmail","emailDomain","substring","indexOf","hostname","replaceAll","endsWith","requestData","e","renderFormValidationMessage","description","justify","placeholder","suffix","content","QuestionCircleTwoTone","App","path","component","TermsAndConditions","Error","NoInterest","ThanksForApplying","exact","Boolean","ReactDOM","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.96555631.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/loading.ae5ee7e6.gif\";","module.exports = __webpack_public_path__ + \"static/media/logo.72b0e9c5.png\";","module.exports = __webpack_public_path__ + \"static/media/white_logo.eb2b63f0.png\";","import React from 'react';\nimport '../assets/styles/Message.scss';\nimport { Button, Typography } from \"antd\";\nimport ReactMarkdown from \"react-markdown\";\n\ninterface MessageProps {\n message: string,\n handleButtonClick: Function\n}\n\nconst { Paragraph } = Typography;\n\nconst Message:React.FunctionComponent = (props:MessageProps) => {\n return (\n
\n \n \n
\n );\n};\n\nexport default Message;","import React from 'react';\nimport loadingIcon from '../assets/images/loading.gif';\n\nconst Loader:React.FunctionComponent<{}> = () => (\n loading\n );\n\nexport default Loader;","import React from 'react';\nimport logo from '../assets/images/logo.png';\nimport '../assets/styles/Header.scss';\n\nimport '../assets/styles/Header.scss';\n\ninterface HeaderProps {\n handleLogoClick: Function\n}\n\nexport default ({ handleLogoClick }: HeaderProps) => {\n return (\n
\n
\n newton-x-logo handleLogoClick()} />\n
\n )\n}","import React from 'react';\nimport logo from '../assets/images/white_logo.png';\nimport '../assets/styles/Footer.scss';\n\ninterface FooterProps {\n handleLogoClick: Function\n}\n\nexport default ({ handleLogoClick }: FooterProps) => {\n return (\n
\n
\n
\n handleLogoClick()} />\n
\n
\n
\n Privacy Policy\n
\n
\n Data Security Policy\n
\n
\n
\n
\n )\n}","export enum RedirectInfoType {\n LINK = 'LINK',\n MESSAGE = 'MESSAGE'\n}\n\nexport enum ModuleType {\n ONBOARDING = 'ONBOARDING',\n VERIFICATION = 'VERIFICATION',\n CUSTOM = 'CUSTOM',\n PAYMENT_FINISHED = 'PAYMENT_FINISHED',\n COMPLETED = 'COMPLETED',\n POST_ONBOARDING = 'POST_ONBOARDING',\n SCREENED = 'SCREENED',\n FRAUD = 'FRAUD',\n QUOTA = 'QUOTA'\n}\n\nexport interface RedirectInfo {\n type: RedirectInfoType,\n message?: string,\n header?: string,\n link?: string,\n termsHeader?: string,\n showTerms?: boolean,\n optInMessage?: string,\n endMessage?: string,\n paymentAmount?: number,\n moduleType: ModuleType\n}","let host: any;\nhost = window.location.host || 'expertsmarketresearch.com';\n\nif(host.includes(\"hub.newtonx\")){\n host = 'expertsmarketresearch.com';\n} else if(host.includes(\"hub.\")){\n host = host.replace('hub.', '')\n}\nif(host.includes(\"www.\")){\n host = host.replace('www.', '')\n}\n\nconst dev = {\n API_BASE_PATH : 'http://localhost:8018/api/v1',\n REACT_APP_LINKEDIN_CLIENT_KEY: '7756moo2ahtfq0'\n};\n\nconst devInt= {\n API_BASE_PATH : 'https://hub.' + host + '/api/v1',\n REACT_APP_LINKEDIN_CLIENT_KEY: '7756moo2ahtfq0'\n};\n\nconst staging = {\n API_BASE_PATH : 'https://hub.' + host + '/api/v1',\n REACT_APP_LINKEDIN_CLIENT_KEY: '7756moo2ahtfq0'\n};\n\nconst prod = {\n API_BASE_PATH : 'https://hub.' + host + '/api/v1',\n REACT_APP_LINKEDIN_CLIENT_KEY: '770p3p4dn55cb3'\n}\n\nlet environment:any;\n\nif (process.env.REACT_APP_STAGE === 'production') {\n environment = prod;\n} else if (process.env.REACT_APP_STAGE === 'staging') {\n environment = staging;\n} else if (process.env.REACT_APP_STAGE === 'development') {\n environment = devInt;\n} else if (process.env.REACT_APP_STAGE === 'local') {\n environment = dev;\n} else {\n environment = dev; \n}\n\nexport default environment;\n","import { SurveyRequestKwStatusMapInfo } from \"../models/SurveyRequestKwStatusMapInfo\";\nimport { VerifySurveyExpertInfo } from \"../models/VerifySurveyExpertInfo\";\nimport { RedirectInfo, ModuleType, RedirectInfoType } from \"../models/RedirectInfo\";\nimport axios from 'axios';\nimport environment from \"../../environments/env\";\nimport { SurveyRequestExpert } from \"../models/SurveyRequestExpert\";\nimport { SurveyExpertInfo } from \"../models/SurveyExpertInfo\";\nimport { SurveyRybbonPaymentResponseInfo } from \"../models/SurveyRybbonPaymentResponseInfo\";\n\nconst apiClient = axios.create({\n baseURL: environment.API_BASE_PATH,\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json'\n }\n});\n\nexport const getRedirectInfoByGuid = async (guid: string, keyword?: string, extraQueries?: any) => {\n const response = await apiClient.get('/survey/expert', {\n params: {\n ...extraQueries,\n keyword: keyword,\n guid: guid,\n }\n });\n return {\n ...response.data,\n moduleType: ModuleType[response.data.moduleType],\n type: RedirectInfoType[response.data.type]\n };\n}\n\nexport const saveSurveyExpertOptInAndTCAccepted = async (guid: string, optIn: boolean, tcAccepted: boolean) => {\n const surveyExpertInfo: SurveyExpertInfo = {\n optIn: optIn,\n tcAccepted: tcAccepted\n }\n await apiClient.patch('/survey/expert', surveyExpertInfo, {\n params: {\n guid: guid\n }\n })\n}\n\nexport const getOrCreateSurveyGuidForPanelExpert = async (panelId: string, panelExpertId: string) => {\n const panelExpert: SurveyRequestExpert = {\n panelId: panelId,\n panelExpertId: panelExpertId\n }\n const response = await apiClient.post('/survey/expert/panel', panelExpert);\n return response.data;\n}\n\nexport const getSurveyExpertRybbonPayment = async (guid: string) => {\n const response = await apiClient.get('/survey/expert/rybbonpayment', {\n params: {\n guid: guid\n }\n });\n return response.data;\n}\n\nexport const sendSurveyExpertRybbonPayment = async (guid: string, surveyExpertInfo: SurveyExpertInfo) => {\n const response = await apiClient.post('/survey/expert/rybbonpayment',\n surveyExpertInfo, {\n params: {\n guid: guid\n }\n });\n return response.data;\n}\n\nexport const getSurveyExpertLinkedinDetails = async (authCode: string, redirectUri: string) => {\n console.log(authCode);\n const response = await apiClient.post('/survey/expert/linkedindetails', null, { params: { authCode, redirectUri } });\n return response.data;\n}\n\nexport const getSurveyKwStatusMapByRefId = async (refId: string) => {\n const response = await apiClient.get('/survey/expert/verification/map', {\n params: {\n refId: refId\n }\n });\n return response.data;\n}\n\nexport const verifySurveyExpert = async (linkedinProfile: string, surveyExpertRegistrationId?: number, refId?: string, email?: string) => {\n const verifySurveyExpert: VerifySurveyExpertInfo = {\n linkedinProfile: linkedinProfile,\n surveyExpertRegistrationId: surveyExpertRegistrationId,\n refId: refId,\n email: email\n }\n const response = await apiClient.post('/survey/expert/verify', verifySurveyExpert, {\n transformResponse: (response) => {\n return response;\n }\n });\n return response.data;\n}\n\nexport const verifySurveyExpertWithRegistration = async (payload: VerifySurveyExpertInfo) => {\n const response = await apiClient.post('/survey/expert/verify/registration', payload, {\n transformResponse: (response) => {\n return response;\n }\n });\n return response.data;\n}\n","export const redirectToLinkWithExtraQueries = (redirectToLink: string, curQueries: URLSearchParams) => {\n let link = new URL(redirectToLink);\n let linkParams = link.searchParams;\n const passAlongQueryParams: string[] = ['lang', 'code', 'CNT'];\n passAlongQueryParams.forEach(queryParam => {\n if (curQueries && curQueries.has(queryParam)) {\n linkParams.append(queryParam, String(curQueries.get(queryParam)));\n }\n });\n window.location.replace(link.href);\n};","import React from \"react\";\nimport {Col, Row, Typography} from \"antd\";\nimport ReactMarkdown from \"react-markdown\";\n\ninterface MessageBodyProps {\n header?: string,\n subtext: string\n}\n\nconst { Title, Paragraph } = Typography;\n\n\nconst MessageBody:React.FunctionComponent = (props:MessageBodyProps) => {\n return (\n
\n {\n props.header && \n {props.header}\n \n }\n \n \n \n \n \n
\n );\n};\n\nexport default MessageBody;","import React from \"react\";\n\nexport default (props, width=window.innerWidth-400, height=window.innerHeight-200, left=window.screenLeft+200, top=window.screenTop+200) => {\n const sizeAndPositions = `width=${width},height=${height},left=${left},top=${top}`;\n return {\n window.open(props.href,'popup',sizeAndPositions);\n }}>\n {props.children}\n \n}","import React, { Component } from 'react';\nimport {Button, Typography, Row, Col, Space, Alert, message, Radio} from 'antd';\nimport {saveSurveyExpertOptInAndTCAccepted} from '../utils/apis/ExpertSurveyApi';\nimport { Redirect } from 'react-router-dom';\nimport {redirectToLinkWithExtraQueries} from \"../utils/utilities\";\nimport MessageBody from \"./MessageBody\";\nimport ReactMarkdown from \"react-markdown\";\nimport LinkToPopupRenderer from \"./LinkToPopupRenderer\";\n\ninterface OnboardingRouteProps {\n guid: string,\n redirectLink: string,\n header?: string,\n subtext: string,\n termsHeader?: string,\n showTerms?: boolean,\n optInMessage?: string,\n endMessage?: string,\n curQueries: URLSearchParams\n}\n\ninterface OnboardingStates {\n redirectToError: boolean,\n tcAccepted?: boolean,\n optIn?: boolean,\n NotAcceptTermsClicked: boolean\n}\n\nconst { Text } = Typography;\n\nexport default class Onboarding extends Component {\n \n state: OnboardingStates = {\n redirectToError: false,\n NotAcceptTermsClicked: false,\n tcAccepted: this.props.showTerms ? undefined : false\n }\n\n handleContinueClick = async () => {\n if (this.state.tcAccepted === undefined) {\n message.warning(\"Press Yes to accept our terms and conditions. Press no to refuse.\")\n return;\n }\n if (this.state.optIn === undefined) {\n message.warning(\"Press Yes to opt in for future opportunities. Press no to refuse.\")\n return;\n }\n try {\n await saveSurveyExpertOptInAndTCAccepted(this.props.guid, this.state.optIn, this.state.tcAccepted);\n } catch (error) {\n this.setState({redirectToError: true});\n }\n redirectToLinkWithExtraQueries(this.props.redirectLink, this.props.curQueries);\n }\n\n handleWarningClose = () => {\n this.setState({ NotAcceptTermsClicked: false });\n }\n\n selectOptIn = (event: any) => {\n this.setState({ optIn: event.target.value });\n }\n\n selectTCAccepted = (event: any) => {\n const tcAccepted = event.target.value;\n if (tcAccepted == \"true\") {\n this.setState({ tcAccepted: true, NotAcceptTermsClicked: false });\n } else {\n this.setState({ tcAccepted: false, NotAcceptTermsClicked: true });\n }\n }\n\n renderRedirectToError = () => {\n if (this.state.redirectToError) {\n return \n }\n }\n\n shouldDisableContinue = () => {\n if (this.state.optIn === undefined) {\n return true;\n }\n if (this.props.showTerms && !this.state.tcAccepted) {\n return true\n }\n return false;\n }\n \n render() {\n \n return (\n
\n {this.renderRedirectToError()}\n \n {\n this.props.showTerms &&\n \n \n LinkToPopupRenderer(props)}} />\n \n \n \n this.selectTCAccepted(event)}\n value={String(this.state.tcAccepted)}>\n Yes\n No\n \n \n \n \n }\n {\n this.props.showTerms && this.state.NotAcceptTermsClicked && \n \n \n }\n {\n !this.state.NotAcceptTermsClicked && \n \n \n \n \n \n this.selectOptIn(event)} value={String(this.state.optIn)}>\n Yes\n No\n \n \n \n \n }\n {\n this.props.endMessage &&\n \n \n \n \n \n }\n \n \n \n \n \n
\n )\n \n }\n}","import React from 'react';\nimport MessageBody from \"./MessageBody\";\n\nexport default () => {\n const header: string = 'Payment on the way!';\n const subtext: string = `Look for an email from payments@newtonx.com, it may have landed in your spam folder. Move the email to your inbox to enable the link and collect your payment. \n\nIf there are any problems, please email us! We’re here to help at payments@newtonx.com.`\n return \n}","import React from 'react';\nimport MessageBody from \"./MessageBody\";\n\nexport default () => {\n const header: string = 'Payment is being processed';\n const subtext: string = ` We need to do some additional verification checks before payment will be sent. You should \n receive an email in 1-2 weeks.\n\nIf there are any problems, please email us! We’re here to help at payments@newtonx.com.`\n return \n}","import React, { Component } from 'react';\nimport {Button, Row, Col, Alert, Form, Input, Checkbox, Spin} from 'antd';\nimport { Redirect } from 'react-router-dom';\nimport MessageBody from \"./MessageBody\";\nimport {getSurveyExpertRybbonPayment, sendSurveyExpertRybbonPayment} from \"../utils/apis/ExpertSurveyApi\";\nimport {SurveyRybbonPaymentResponseInfo} from \"../utils/models/SurveyRybbonPaymentResponseInfo\";\nimport {SurveyExpertInfo} from \"../utils/models/SurveyExpertInfo\";\nimport PaymentCompleted from \"./PaymentCompleted\";\nimport PaymentDeferred from \"./PaymentDeferred\";\n\ninterface PaymentRouteProps {\n guid: string,\n redirectLink: string,\n header?: string,\n subtext: string,\n termsHeader?: string,\n curQueries: URLSearchParams\n}\n\ninterface PaymentStates {\n redirectToError: boolean,\n redirectToDeferred: boolean,\n redirectToCompleted: boolean,\n showPaymentSubmitMessage: boolean,\n showPaymentErrorMessage: boolean,\n paymentSubmitMessage?: string,\n paymentErrorMessage?: string,\n optIn: boolean,\n loading: boolean\n}\n\nconst PAYMENT_EMAIL_ENTRY_HANDLE_BAR = '[paymentEmailEntry]';\n\nexport default class Payment extends Component {\n \n state: PaymentStates = {\n redirectToError: false,\n redirectToDeferred: false,\n redirectToCompleted: false,\n showPaymentSubmitMessage: false,\n showPaymentErrorMessage: false,\n optIn: false,\n loading: false\n }\n\n async componentDidMount() {\n try {\n const response: SurveyRybbonPaymentResponseInfo = await getSurveyExpertRybbonPayment(this.props.guid);\n this.setState({ optIn: response.optIn })\n if (response.deferred) {\n this.setState({ redirectToDeferred: true });\n } else if (response.rybbonGenerated) {\n this.setState({ redirectToCompleted: true });\n }\n } catch (error) {\n this.setState({ redirectToError: true });\n }\n }\n\n renderRedirectToError = () => {\n if (this.state.redirectToError) {\n return \n }\n }\n\n submitPayment = async (values: any) => {\n const expertInfo: SurveyExpertInfo = {\n email: values.email,\n phone: values.phone,\n optIn: values.optIn\n }\n try {\n this.setState({ loading: true })\n const response: SurveyRybbonPaymentResponseInfo = await sendSurveyExpertRybbonPayment(this.props.guid, expertInfo);\n let paymentSubmitMessage;\n if (response.deferred) {\n paymentSubmitMessage = `We need to do some additional verification checks before payment will be sent. You should \n receive an email in 1-2 weeks.\n\nIf there are any problems, please email us! We’re here to help at payments@newtonx.com.`\n } else {\n paymentSubmitMessage = `We are sending you an email now, it should arrive within the next 60 seconds. Look for an email from payments@newtonx.com, it may have landed in your spam folder. Move the email to your inbox to enable the link and collect your payment.`\n }\n this.setState({ showPaymentSubmitMessage: true, loading: false, paymentSubmitMessage: paymentSubmitMessage });\n } catch (error) {\n const paymentErrorMessage = `Looks like we are experiencing a technical problem. Can you try again in 30 seconds, please? If it does not work, can you please email us a copy of the link in your browser to “payments@newtonx.com” and we will look into this for you. Sorry for the inconvenience.`\n this.setState({ showPaymentErrorMessage: true, loading: false, paymentErrorMessage: paymentErrorMessage });\n }\n }\n\n render() {\n const [textBeforeInput, textAfterInput] = this.props.subtext.split(PAYMENT_EMAIL_ENTRY_HANDLE_BAR, 2);\n const showPaymentForm = !this.state.redirectToDeferred && !this.state.redirectToCompleted;\n\n const showPaymentCompleted = this.state.redirectToCompleted && ;\n const showPaymentDeffered = this.state.redirectToDeferred && ;\n const formItemLayout = {\n labelCol: {\n xs: {\n span: 24,\n },\n sm: {\n span: 8,\n },\n },\n wrapperCol: {\n xs: {\n span: 24,\n },\n sm: {\n span: 16,\n },\n },\n };\n return (\n
\n {this.renderRedirectToError()}\n {showPaymentCompleted}\n {showPaymentDeffered}\n {\n showPaymentForm &&
\n \n \n {\n this.state.showPaymentSubmitMessage &&\n \n \n \n }\n {\n this.state.showPaymentErrorMessage &&\n \n \n \n }\n {\n this.state.loading && \n }\n {\n !this.state.showPaymentSubmitMessage && !this.state.showPaymentErrorMessage && !this.state.loading &&\n
\n \n \n \n ({\n validator(rule, value) {\n if (!value || getFieldValue('email') === value) {\n return Promise.resolve();\n }\n\n return Promise.reject('The two emails that you entered do not match!');\n },\n }),\n ]}\n >\n \n \n \n \n \n \n Opt in for future opportunities\n \n \n \n \n \n }\n
\n \n
\n }\n
\n )\n \n }\n}\n","import React, { Component } from 'react';\nimport queryString from 'query-string';\nimport Message from './Message';\nimport { RouteComponentProps } from 'react-router';\nimport Loader from './Loader';\nimport Header from './Header';\nimport Footer from './Footer';\n\nimport '../assets/styles/Redirect.scss';\nimport '../assets/styles/Loader.scss';\nimport { RedirectInfo, RedirectInfoType, ModuleType } from '../utils/models/RedirectInfo';\nimport Onboarding from './Onboarding';\nimport { getRedirectInfoByGuid } from '../utils/apis/ExpertSurveyApi';\nimport { Redirect } from 'react-router-dom';\nimport { redirectToLinkWithExtraQueries } from \"../utils/utilities\";\nimport MessageBody from \"./MessageBody\";\nimport Payment from './Payment';\n\ninterface SurveyRedirectRouteProps {\n keyword?:string,\n guid: string\n}\n\ninterface SurveyRedirectStates {\n loading: boolean,\n redirectInfo: RedirectInfo,\n redirectToError: boolean\n}\n\nexport default class SurveyRedirect extends Component, SurveyRedirectStates> {\n state: Readonly = {\n redirectInfo: {\n type: RedirectInfoType.LINK,\n message: '',\n moduleType: ModuleType.CUSTOM,\n link: ''\n },\n loading: true,\n redirectToError: false\n }\n\n async componentDidMount() {\n const {\n keyword,\n guid,\n } = this.props.match.params;\n const queries = queryString.parse(this.props.location.search);\n try {\n const redirectInfo: RedirectInfo = await getRedirectInfoByGuid(guid, keyword, queries);\n this.setState({ \n redirectInfo,\n loading: false,\n });\n } catch (error) {\n this.setState({ redirectToError: true });\n }\n }\n\n handleGoToNewtonXClick = () => {\n window.location.replace('https://newtonx.com');\n }\n\n renderRedirectToError = () => {\n if (this.state.redirectToError) {\n return \n }\n }\n\n render() {\n const isPayment: boolean = !!this.state.redirectInfo.paymentAmount && this.state.redirectInfo.paymentAmount !== 0;\n const isMessage: boolean = this.state.redirectInfo.type === RedirectInfoType.MESSAGE && !isPayment;\n const isLoading: boolean = this.state.loading;\n const isOnboarding: boolean = this.state.redirectInfo.moduleType === ModuleType.ONBOARDING;\n const shouldRedirect: boolean = !isPayment && !isMessage && !isOnboarding && !isLoading;\n const isOldSurveyWithNoHeader: boolean = this.state.redirectInfo.header == null;\n\n if (shouldRedirect && this.state.redirectInfo.type === RedirectInfoType.LINK && this.state.redirectInfo.link) {\n redirectToLinkWithExtraQueries(this.state.redirectInfo.link, new URLSearchParams(this.props.location.search));\n }\n return (\n
\n {this.renderRedirectToError()}\n {\n isOnboarding && \n }\n {\n isPayment && \n } \n {\n isMessage && !isOldSurveyWithNoHeader && \n }\n {\n isMessage && isOldSurveyWithNoHeader &&
\n }\n {\n isMessage && isOldSurveyWithNoHeader && \n }\n {\n isMessage && isOldSurveyWithNoHeader &&
\n }\n\n {\n isLoading && (\n
\n \n
\n )\n }\n
\n )\n }\n}","import React, { Component } from 'react';\nimport { RouteComponentProps } from 'react-router';\n\nexport default class HomeRedirect extends Component, any> {\n\nrender()\n {\n let origin = window.location.origin || 'https://expertsmarketresearch.com';\n if(origin.includes(\"hub.\")) {\n origin = origin.replace('hub.', 'www.')\n window.location.replace(origin);\n } else if(origin.includes('expertsmarketresearch.com')){\n window.location.replace('https://expmktrsch.wpengine.com/');\n }\n return
\n } \n}\n","import React from 'react';\nimport MessageBody from \"./MessageBody\";\n\nexport default () => {\n const header: string = 'Something went wrong';\n const subtext: string = `Looks like something unexpected happened.\n\nPlease close this window and return to the site using the link provided in the email.\n\nIf you have any further issues, reply to the email and we’ll help you out.`\n return \n}","import React from 'react';\nimport { Typography } from \"antd\";\n\nconst { Title, Text, Paragraph } = Typography;\n\nexport default () => {\n return(\n \n TERMS AND CONDITIONS\n Last updated January 3rd, 2018\n\n OVERVIEW AND ACTIVITIES\n NewtonX is a platform aiming at facilitating expertise sharing among professionals. The NewtonX experts are professionals and consultants in various industries and specialties (“Experts”) who educate and share insights with various professionals searching their expertise (“Clients”) through the NewtonX platform. NewtonX provides opportunities for Experts to participate in expertise sharing (“Projects”), including, but not limited to telephone consultations and online surveys. An Expert’s participation in any Project with any Client is at the Expert’s sole discretion. Experts are never obligated to accept or continue any Project and may decline to participate or continue to participate in any Project at any time.\n\n NEWTONX CONDITIONS OF MEMBERSHIP AND PARTICIPATION IN PROJECTS\n You may become an Expert and participate in any particular Project if, and only if, all of the following compliance conditions are satisfied:\n \n
    \n
  1. Your membership and participation would not present any conflict of interest or perceived conflict of interest.
  2. \n
  3. Your membership and participation would not cause you to breach any agreement with or other legal obligation to any person or entity (including, but not limited to, your current employers, your previous employers or any person or entity to which, or through which, you provide or have provided consulting services).
  4. \n
  5. Your membership and participation would not cause you to violate any duty or obligation of any kind to, or policy or code of conduct of, any person or entity (including, but not limited to, your employer, your previous employers or any company to which, or through which, you provide or have provided consulting services).
  6. \n
  7. Your membership and participation would not result in the disclosure of any confidential or proprietary information (including trade secrets) not owned exclusively by you.
  8. \n
  9. Your membership and participation would not result in any communication or disclosure to any third party of any material non-public information concerning any public company or security.
  10. \n
  11. Your membership and participation would not violate any law, rule or regulation.
  12. \n
\n
\n YOU MUST DECLINE OR DISCONTINUE PARTICIPATION IN ANY PROJECT THAT WOULD RESULT IN A VIOLATION OF ANY OF THE CONDITIONS ABOVE.\n\n As an Expert, you acknowledge and agree to the following:\n\n
    \n
  1. You are a non-agent independent contractor of NewtonX
  2. \n
  3. You have no authority to act on behalf of NewtonX
  4. \n
  5. You are not eligible for any NewtonX or Client employment benefits based on your participation in the NewtonX Projects
  6. \n
  7. You shall not identify any Client or NewtonX as your employer
  8. \n
  9. You are joining the NewtonX Projects in your individual capacity and not as a representative or on behalf of any other company or organization (such as past or present employers), except as otherwise agreed in writing between such organization and NewtonX
  10. \n
  11. NewtonX, in its sole discretion, may determine your eligibility for membership in the NewtonX Projects. If you are in any way unsure about your ability to comply with these Terms & Conditions, then you must decline to participate as an Expert.
  12. \n
  13. You agree that for compliance or training purposes, your consultation may be recorded
  14. \n
  15. You agree to let NewtonX store your LinkedIn profile or your profile available on other data sources
  16. \n
\n\n You are solely responsible for determining whether you are permitted to join NewtonX and to participate in Projects. Before applying to join NewtonX, you must review any and all legal agreements that could restrict your ability to participate, including, without limitation, employment agreements, consulting agreements, non-disclosure agreements, employee handbooks, codes of ethics and similar employment policies. You also confirm that you have obtained consents or waivers from your employer, Clients or any other third parties (if applicable, in each instance) to ensure that you are permitted to act as an Expert.\n\n YOUR CURRENT COMPANY\n\n You agree not to consult about a company for which you are a current employee, director, trustee, officer, or board member (or for which you hold a similar position). You further agree that if you were previously employed in the finance or accounting department of a company, you will not consult about that company until four months after termination of your employment. You confirm that your employer does not prohibit you to perform consulting in addition to your current job. If a public company of which you are a current director, trustee, officer, board member or employee (or for which you hold a similar position) is the target or bidder in a tender offer, or has filed to issue an IPO, you must decline all Projects until the tender offer is resolved or the IPO is issued.\n\n COMPETITORS\n\n You agree not to consult on a Project for a Client that is a direct competitor of a company for which you are a current director, trustee, officer, board member or employee (or for which you hold a similar position).\n\n GOVERNMENT EMPLOYEES\n\n If you are a government employee in a government or jurisdiction that forbids government employees from participating in outside consulting projects, you may not be an Expert of NewtonX or participate in any Project. Otherwise, if you are a government employee, you agree not to consult about matters presently regulated by the agency or department in which you are employed. Furthermore, you agree not to consult about any legislation, regulation, or policy that you are in a position to vote upon or otherwise influence, and you agree not to give or receive any item of value from or to another person or entity for the purpose of seeking influence or for any other improper purpose.\n \n\n INVESTMENT AND PROFESSIONAL ADVICE\n You represent that you are not registered as an investment adviser and that you are joining NewtonX in your individual capacity and not as an agent or representative of any entity or individual (including, without limitation, any investment Expert). You agree not to provide any investment advice including, without limitation, advice concerning the value of any security or the advisability of buying, selling, or otherwise investing in any security.\n\n HEALTHCARE PROFESSIONALS\n If you are a healthcare professional, you agree not to disclose any patient or other information prohibited to be disclosed under The Health Insurance Portability and Accountability Act of 1996 (HIPAA) Privacy and Security Rules or other similar laws, rules or regulations, or to dispense any medical advice at any time during the course of your service as an Expert. You shall promptly notify us if, in your reasonable opinion, a Client is seeking to speak to you for any purpose other than to conduct research (e.g., attempting to market products or services to you). Furthermore, you certify to NewtonX that you are duly licensed in any jurisdictions in which you are currently practicing, and that you are not listed on the List of Excluded Individuals/Entities issued by the Office of the Inspector General of the U.S. Department of Health and Human Services and/or the Debarment List of the U.S. Food and Drug Administration. You agree that you will promptly notify NewtonX in the event that any of the representations in this paragraph cease to be true.\n CLINICAL TRIALS AND CONSULTING\n If you have participated in a clinical trial or provided consulting services to a person or entity, you may have duties or obligations to treat certain related information as confidential. You must satisfy those duties and obligations and any other policies and requirements of such person or entity, your institution(s) and trial sponsors. Under no circumstances may you ever disclose or discuss any confidential information learned in the course of your consulting or clinical trial participation, including patient experience information and trial results, until such information has been made public. If you are a Data Safety Monitoring Board or Clinical Trial Steering Committee member on an ongoing clinical trial, you may not discuss the ongoing trial phase until it is completed and the results are made public.\n ATTORNEYS AND AUDITORS\n If you are an attorney, you agree not to consult about any Clients you currently represent or to disclose any information or opinions that would breach any legal or ethical duty you or your firm owes to past or present Clients. If you are currently an auditor or formerly an auditor, you agree not to consult about companies or other organizations that you currently audit or have audited within the last three years. If you are an attorney or an auditor in current practice, you represent that you are duly licensed to practice in the jurisdictions in which you currently practice, and that you are in good standing as a member of the Bar or other similar professional boards to which you are subject. You agree not to provide any legal or professional services to a Client during a Project for that Client.\n LEGAL PRIVILEGE\n In the event that a Client initiates a Project involving its legal counsel, it is possible that the Client may wish to assert a claim of legal privilege concerning the Project. Under these circumstances, Client’s legal counsel may ask you to enter into a separate written engagement agreement with them for your services (an “Engagement Agreement”). Any such request may only come through NewtonX, and you may only choose to accept following NewtonX’s prior written approval in its sole discretion. Once approved, an Engagement Agreement shall control over any inconsistent terms in these Terms & Conditions with respect to your relationship and obligations to such Client with respect to the Project. Such Engagement Agreement shall not modify your obligations to NewtonX or third parties, under these Terms & Conditions or otherwise.\n FALSE OR MISLEADING INFORMATION\n You agree never to disseminate false or misleading information or inaccurately represent your experience, education, employment, or knowledge to us or any Clients.\n PRIOR MISCONDUCT\n You represent that you have not been convicted of or charged with any felony. You represent that you are not, and have not been, the target or subject of any regulatory or enforcement proceeding brought by any securities, commodities or other financial regulatory authority, self-regulatory organization, or other law enforcement body. You represent that you have not been debarred, excluded, suspended or otherwise not permitted to participate in U.S. government or state programs, including, without limitation, under the OFAC Specially Designated Nationals List or the GSA Excluded Parties List System. Should your status change with respect to any of these representations, you shall immediately inform NewtonX.\n EXPERT TUTORIAL\n You represent that you have reviewed the NewtonX Expert Tutorial, the NewtonX compliance page and understood NewtonX’s key compliance rules. In addition, you must represent prior to each consultation that you have reviewed the Expert Tutorial within 12 months of the consultation.\n ACCURACY OF INFORMATION\n You are solely responsible for the accuracy and completeness of information that you provide to NewtonX (your “Expert Information”) and you understand that NewtonX, Clients and third parties may and will rely on your Expert Information. You agree to provide us with accurate and up-to-date biographical information in your application and in connection with any further queries, including, without limitation, your current and former employment, and any conflicts or restrictions on your ability to consult. Based on further information from you or other sources, we may amend your Expert Information and you acknowledge that you are under a continuing obligation to monitor the accuracy of your Expert Information and to update changes promptly.\n PRIVACY\n You agree that NewtonX may collect, synthesize and retain information about you, from sources including, without limitation, yourself, your activities through NewtonX, and third-party sources (hereafter, “Personal Information”). NewtonX will protect Personal Information in accordance with NewtonX’s Privacy Policy, which is incorporated by reference. If your membership in NewtonX ends, you agree that NewtonX may preserve Personal Information, provided that NewtonX accords such Personal Information the protections set forth in its then-current Terms & Conditions privacy policies. You agree that NewtonX may use and share Personal Information to, without limitation, contact you concerning your participation in NewtonX, to manage your membership in the NewtonX, to administer compliance policies and procedures, including obtaining required approvals and consents for Project participation, to market NewtonX ’s services, and to comply with applicable laws and requests from government authorities. You agree that we may also utilize Personal Information to manage, improve and promote its business. As part of its compliance screening, NewtonX reserves the right to conduct background checks on you, itself or utilizing third-party services, and to confirm your professional and educational history. You agree that we may disclose Personal Information as required by law, to protect NewtonX’s rights, or for the prevention, detection or disclosure of a crime. You also recognize that Clients may be required by law or their compliance policies to disclose Personal Information about their Projects with you and you authorize NewtonX and its Clients to make such disclosures. NewtonX will not sell Personal Information to third-party marketers or similar organizations, or disclose the Personal Information publicly, unless you provide consent or we determine that it is appropriate in response to a law, regulation, rule, government request or legal process.\n APPLICATION OF THE TERMS & CONDITIONS\n By becoming an Expert, you represent and warrant to us that you are in compliance with each of the conditions, agreements, acknowledgements, representations, covenants, warranties and other obligations included in these Terms & Conditions. As an Expert, you will be expected to provide information during any Project in good faith, to the best of your ability and at all times consistent with these Terms & Conditions. You understand and acknowledge that each NewtonX employee, affiliate and Client is an intended third-party beneficiary of these Terms & Conditions and shall therefore have the right to enforce your compliance with them. You must decline to participate in, or to continue your participation in, any Project or other activity that would cause you to violate these Terms & Conditions and immediately inform us of the reason. We typically do not participate in your interactions with Clients and shall not be liable or responsible to you in any manner whatsoever for Projects arranged by us. You are solely responsible for ensuring your continued compliance with the Terms & Conditions. You agree to cooperate fully in any inquiry concerning actual, alleged, or potential violations of these Terms & Conditions. To encourage your vigilance and care in complying with these Terms & Conditions, you may submit a payment request for a full Project that you choose to terminate early for the purpose of complying with them.\n CONFIDENTIALITY\n You shall keep and maintain as strictly confidential, and agree not to communicate, reveal or disclose, all “Confidential Information” of NewtonX or its Clients, without NewtonX’s expressly written permission (which it may withhold in its sole discretion). “Confidential Information” includes any and all nonpublic information, in any form or medium, written, oral or otherwise, concerning or relating to NewtonX, any of its affiliates or any Client, including, but not limited to, the names of any Clients and Clients’ employees, questions posed by any Client and the topics discussed, information or materials shared, opinions expressed or work commissioned by NewtonX or any Client. In the event that you are required to disclose Confidential Information under applicable law, you agree to promptly notify NewtonX and to fully cooperate with NewtonX in exercising any right or exemption available to prevent the disclosure of Confidential Information to the extent permitted under applicable law. You shall not use Confidential Information for any purpose other than those specifically permitted by these Terms & Conditions. Without limiting the foregoing, you shall not use Confidential Information for personal benefit (including for the purpose of making investment or trading decisions). The duty to maintain confidentiality hereunder shall survive until the Confidential Information becomes generally known to and available for use by the public other than as a result of a disclosure by you or any other person under legal obligation not to disclose the information.\n PROJECTS\n You shall only accept Projects with NewtonX Clients individually arranged or explicitly approved by NewtonX. If a Client requests additional work or Projects, you must receive explicit approval from us before commencing work. You will not be paid for any Project with a NewtonX Client that was not individually arranged or explicitly approved by NewtonX in advance, even if the Project was a follow-up to a Project that was arranged by NewtonX. If you are invited by NewtonX to perform a Project for a Client, you should either accept or decline the invitation within 24 hours of issuance. We make no representation regarding the frequency or quantity of Project requests that you will receive. We expect you to perform all Projects in a timely, diligent and professional manner consistent with highest industry practice.\n PAYMENT\n You will be paid based on your customary consulting fees, as agreed by you and us. You may only change your consulting fee rates upon written notice to us and the new fee rate is only applicable to Projects that occur after our receipt and approval of written notice. You may not reveal your billing rates and financial arrangements to Clients without NewtonX’s prior written consent. Our payment system may accommodate consulting guidelines set forth by an Expert’s employer, including joint payment to the Expert and his or her employer, direct payment to the Expert’s institution or payment to a charity of the Expert’s choice. Payments will be made following the completion of an Expert’s consulting engagement, within 30 days following the completion of the consultation.\n INDEPENDENT CONTRACTOR STATUS\n It is understood and agreed that any services performed by you under these Terms & Conditions shall be performed as an independent contractor and consultant, and you further understand and acknowledge that you have no authority to act or speak on NewtonX’s behalf or to represent that you have any such authority. You shall not be deemed to be an employee of NewtonX or any of its Clients and you shall not be entitled to any benefits provided by either NewtonX or any of its Clients. You agree that you shall be personally responsible and liable for any and all taxes and other payments due on payments received by you for services provided under these Terms & Conditions. Nothing in these Terms & Conditions shall create a partnership or joint venture or establish the relationship of principal and agent or any other relationship of a similar nature between you, NewtonX or its Clients.\n TERMINATION\n You may terminate your membership in NewtonX at any time by providing us with written notice. Likewise, NewtonX may terminate your membership in NewtonX at any time and for any reason without providing notice. Termination shall not relieve either party of its obligations under these Terms & Conditions intended to survive termination, which include, but are not limited to: Privacy, Application of the Terms and Conditions, Confidentiality, Non-Solicitation, Intellectual Property, Indemnification, Limitation of Liability, Arbitration, Governing Law and Venue and Miscellaneous.\n NON-SOLICITATION\n You agree that for a period of one year from the completion of any Project with a Client to whom you have been first introduced by us, you will not circumvent NewtonX by knowingly soliciting, negotiating with, or entering into any agreement or other arrangement (whether written or oral) with a Client first introduced to you by us pursuant to which you would be engaged by such Client to provide services of a similar nature to the services, Experts provide to NewtonX’s Clients (i.e., short term consulting services) without our prior written consent. You also agree that, for a period of one year after the termination of your relationship with us for any reason whatsoever, you will not, directly or indirectly, solicit for employment, employ or hire any employee of NewtonX or of any Clients to whom you have been first introduced by us.\n INTELLECTUAL PROPERTY\n You are solely responsible for the content that you share or create in connection with your performance of services hereunder. You represent that you own or have obtained any necessary licenses or permissions for any materials, regardless of form or format (hereafter, “IP”), that you provide to NewtonX, Clients or third parties in connection with your performance of such services. IP that you create in connection with any Client Project shall be solely owned by the Client who requested the Project and that Client may use such IP for any purpose permitted under applicable law and that\n Client’s agreement with NewtonX. Any inventions, discoveries or improvements that are based in any way on any IP you create for a Client in the course of a Project, and all intellectual property rights in such inventions, discoveries or improvements, shall likewise be owned solely and entirely by the Client. Any IP that you created prior to, or independently of, any Project (hereafter, “Expert IP”) remains your property. However, with respect to any Expert IP that you share or otherwise provide to a Client in connection with a Project, you shall automatically grant that Client a perpetual, worldwide, royalty-free, and transferable license to use such Expert IP. Furthermore, and without limiting the foregoing, you agree that each Client is free to use any ideas, concepts, know-how, or techniques contained in any IP you share with or otherwise provide to that Client for any purpose whatsoever, including, but not limited to, devising, manufacturing, promoting and selling products and services using such information.\n INDEMNIFICATION\n You agree to indemnify and hold harmless NewtonX and its affiliates, and their respective officers, directors, employees, members, managing members, managers, agents, representatives, successors and assigns (collectively, the “NewtonX Parties”) from any and all actions, causes of action, claims, charges, demands, cost, expenses and damages (including attorneys’ fees and expenses) and liabilities of any kind whatsoever directly or indirectly resulting from, arising out of or in connection with your breach or violation of any and all provisions of these Terms and Conditions.\n LIMITATION OF LIABILITY\n YOU AGREE THAT UNDER NO CIRCUMSTANCES WILL NEWTONX PARTIES BE LIABLE TO YOU OR TO ANY OTHER PARTY FOR ANY INDIRECT, INCIDENTAL, CONSEQUENTIAL, EXEMPLARY OR PUNITIVE DAMAGES ARISING FROM OR RELATING TO YOUR SERVICES AND OTHER CONDUCT AS AN EXPERT, OR YOUR INTERACTIONS OTHERWISE WITH NEWTONX PARTIES OR CLIENTS. NEWTONX PARTIES SHALL NOT BE LIABLE FOR ANY CLAIMS AGAINST YOU BY THIRD PARTIES. IN NO EVENT SHALL THE MAXIMUM CUMULATIVE LIABILITY OF NEWTONX PARTIES ARISING FROM OR RELATED TO ANY CONDUCT IN CONNECTION WITH THESE TERMS AND CONDITIONS EXCEED THE FEES PAID BY NEWTONX TO YOU HEREUNDER FOR THE RELEVANT CONSULTATION OR SURVEY IN THE MONTH SUCH LIABILITY IS ALLEGED TO HAVE ARISEN.\n NewtonX agrees not to seek to impose upon you liability for indirect, incidental, consequential, exemplary or punitive damages based on your performance of services under these Terms & Conditions, so long as such damages do not arise out of or relate to a failure by you to comply with these Terms & Conditions, or conduct that constitutes gross negligence or intentional misconduct. Collectively, the terms in this paragraph constitute the “Limitation of Liability.”\n ARBITRATION, GOVERNING LAW AND VENUE\n The validity, interpretation, performance and enforcement of these Terms & Conditions shall be governed by the laws of the State of New York without regard to the conflicts of laws principles thereof. \n ANY DISPUTE, CONTROVERSY OR CLAIM ARISING FROM OR RELATING TO THESE TERMS AND CONDITIONS SHALL BE FULLY AND EXCLUSIVELY FINALLY SETTLED BY AN ARBITRATION HELD IN NEW YORK CITY UNDER THE RULES OF THE AMERICAN ARBITRATION ASSOCIATION IN EFFECT FROM TIME TO TIME. YOU HEREBY IRREVOCABLY AND UNCONDITIONALLY WAIVE ANY RIGHTS YOU MAY HAVE TO A TRIAL BY JURY WITH RESPECT TO ANY SUCH DISPUTE, CONTROVERSY OR CLAIM RELATING TO THIS AGREEMENT. The arbitrator may grant any remedy that he or she deems just and equitable within the scope of this arbitration agreement, except that he or she may not, under any circumstance, grant a remedy inconsistent with or in violation of the Limitation of Liability. The award of the arbitrator shall be final and binding and judgment thereon may be entered in any court having jurisdiction. You hereby unconditionally and irrevocably submit to the jurisdiction of the federal and state courts of New York.\n\n MISCELLANEOUS\n We may modify these terms and conditions from time to time by posting the modification(s) on our website, www.NewtonX.com. Unless otherwise specified by us when posted, all modifications will be effective upon posting. If you do not agree to any modification(s), your only recourse will be to terminate your participation as an Expert in NewtonX. If you continue to participate as an Expert after any modification becomes effective, then your participation will constitute acceptance of such modification. No failure or delay by either party in exercising any right, power or privilege hereunder shall operate as a waiver thereof, nor shall any single or partial exercise thereof preclude any other or further exercise thereof or the exercise of any right, power or privilege hereunder. Neither these Terms & Conditions nor any of the rights, interests or obligations hereunder may be assigned, delegated or otherwise transferred, in whole or in part, by operation of law or otherwise, by you without our prior written consent (which consent we may withhold in our sole discretion), and any such assignment, delegation or transfer by you without such prior written consent shall be null and void and of no force or effect whatsoever. These Terms & Conditions shall be binding upon and inure solely to the benefit of you and NewtonX and the successors, assigns and Clients of NewtonX. As used in these Terms & Conditions, the word “including” shall mean “including, without limitation,” in all cases. Whenever possible, each provision of these Terms and Conditions shall be interpreted in such manner as to be effective and valid under applicable law, but if any provision of these Terms & Conditions is held to be invalid, illegal or unenforceable in any respect, such invalidity, illegality or unenforceability shall not affect any other provision of these Terms & Conditions, and these Terms & Conditions shall be reformed, construed and enforced as if such invalid, illegal or unenforceable provision had never been contained herein.\n By electronically signing these Terms & Conditions, you acknowledge and agree that you are making express representations to NewtonX and Clients that you will abide by all of your obligations and responsibilities as set forth in these Terms & Conditions.\n
\n )\n}","import React, {Component} from \"react\";\nimport {RouteComponentProps} from \"react-router\";\nimport {getOrCreateSurveyGuidForPanelExpert} from \"../utils/apis/ExpertSurveyApi\";\nimport {SurveyRequestExpert} from \"../utils/models/SurveyRequestExpert\";\nimport {Redirect} from \"react-router-dom\";\n\ninterface PanelRouteProps {\n panelId: string,\n panelExpertId: string\n}\n\ninterface PanelStates {\n redirectToError: boolean,\n guid?: string\n}\n\nexport default class Panel extends Component, PanelStates> {\n\n state: PanelStates = {\n redirectToError: false\n }\n\n async componentDidMount() {\n const {\n panelId,\n panelExpertId\n } = this.props.match.params;\n\n try {\n const panelExpert: SurveyRequestExpert = await getOrCreateSurveyGuidForPanelExpert(panelId, panelExpertId);\n this.setState({\n guid: panelExpert.guid\n });\n } catch (error) {\n this.setState({ redirectToError: true });\n }\n }\n\n render() {\n return (\n
\n {\n this.state.redirectToError && \n }\n {\n this.state.guid && \n }\n
\n );\n }\n\n}","import React from 'react';\nimport MessageBody from \"./MessageBody\";\nimport LinkedIn from \"linkedin-login-for-react\";\nimport {Col, Row} from \"antd\";\nimport '../assets/styles/Refer.css';\nimport environment from \"../environments/env\";\n\ninterface LinkedinLoginProps {\n callbackLinkedIn: any\n}\n\nconst LinkedinLogin: React.FunctionComponent = (props: LinkedinLoginProps) => {\n\n const clientId = environment.REACT_APP_LINKEDIN_CLIENT_KEY;\n\n const header = 'Great!';\n const message = 'We use Linkedin to make this process easier and faster for you. Please click the button below to start.';\n return (\n
\n \n \n \n \n \n \n
\n )\n}\n\nexport default LinkedinLogin;","import React, {Component} from 'react';\nimport {Button, Row, Col, Form, Input, Spin, Typography} from 'antd';\nimport {verifySurveyExpert} from '../utils/apis/ExpertSurveyApi';\nimport {Redirect} from \"react-router-dom\";\nimport LinkToPopupRenderer from \"./LinkToPopupRenderer\";\nimport ReactMarkdown from \"react-markdown\";\n\ninterface LinkedinVerificationProps {\n refId: string,\n surveyRegistrationId?: number,\n requireManualVerification?: boolean,\n email?: string\n}\n\ninterface LinkedinVerificationStates {\n loading: boolean,\n redirectToSurvey: boolean,\n redirectToError: boolean,\n guid?: string,\n redirectToThanksForApplying: boolean\n}\n\nconst { Title, Paragraph } = Typography;\n\nexport default class LinkedinVerification extends Component {\n\n state: LinkedinVerificationStates = {\n loading: false,\n redirectToError: false,\n redirectToSurvey: false,\n guid: \"\",\n redirectToThanksForApplying: false\n }\n\n renderRedirectToError = () => {\n if (this.state.redirectToError) {\n return \n }\n }\n\n renderRedirectToSurvey = () => {\n if (this.state.redirectToSurvey) {\n return \n }\n }\n\n renderRedirectToThanksForApplying = () => {\n if (this.state.redirectToThanksForApplying) {\n return \n }\n }\n\n submitProfileUrl = async (values) => {\n try {\n this.setState({loading: true});\n let profile = this.buildProfileUrl(values.profile);\n const res = await verifySurveyExpert(profile, this.props.surveyRegistrationId, this.props.refId, values.email);\n this.setState({\n loading: false,\n guid: res.guid,\n redirectToSurvey: !res.requireManualVerification,\n redirectToThanksForApplying: !!res.requireManualVerification\n });\n } catch (error) {\n this.setState({loading: false, redirectToError: true});\n }\n }\n\n buildProfileUrl(profile: string) {\n let regex = /https:\\/\\//;\n if (!regex.test(profile)) {\n return `https://${profile}`;\n }\n return profile;\n }\n\n render() {\n const subtext = \"Last step to check if you're a fit, we just need your public Linkedin URL. If you don't know your Linkedin URL, [click here](https://www.linkedin.com/in/me/detail/contact-info/) to see your URL (and copy it below).\";\n const layout = {\n labelCol: { span: 10 },\n wrapperCol: { span: 14 },\n };\n\n return (\n
\n {this.renderRedirectToError()}\n {this.renderRedirectToSurvey()}\n {this.renderRedirectToThanksForApplying()}\n \n Thanks for logging in with Linkedin\n \n \n \n LinkToPopupRenderer(props, 500, 300)}} />\n \n \n \n \n {\n this.state.loading && \n }\n {\n !this.state.loading &&
\n {\n return this.buildProfileUrl(value);\n },\n validator: (rule, value) => {\n if (value.includes(\"/in/\") && value.includes(\"linkedin\") && !(value.includes(\"linkedin.com/in/me/\")\n )) {\n return Promise.resolve();\n } else {\n return Promise.reject(\"It appears you have not inputted your LinkedIn Profile URL, please click on the “click here” button above, wait for the page to load, then copy the URL from there\")\n }\n } }]}>\n \n \n \n \n \n \n \n \n \n }\n \n
\n
\n )\n }\n}\n\n","import React, {Component} from \"react\";\nimport {Button, Row, Col, Space, Spin} from 'antd';\nimport {getSurveyExpertLinkedinDetails} from '../utils/apis/ExpertSurveyApi';\nimport {getSurveyKwStatusMapByRefId} from '../utils/apis/ExpertSurveyApi';\nimport {Redirect} from \"react-router-dom\";\nimport MessageBody from \"./MessageBody\";\nimport {RouteComponentProps} from 'react-router';\nimport {SurveyRequestKwStatusMapInfo} from '../utils/models/SurveyRequestKwStatusMapInfo';\nimport LinkedinLogin from \"./LinkedinLogin\";\nimport LinkedinVerification from \"./LinkedinVerification\";\nimport '../assets/styles/Redirect.scss';\n\ninterface ReferRouteProps {\n refId: string\n}\n\ninterface ReferStates {\n redirectToError: boolean,\n redirectToSuccess: boolean,\n redirectToNoInterest: boolean,\n redirectToNoLinkedIn: boolean,\n header?: string,\n messageToDisplay?: string,\n deactivateRequest?: boolean,\n loading: boolean,\n showLinkedinLogin: boolean,\n surveyRegistrationId?: number,\n requireManualVerification?: boolean,\n email?: string\n}\n\nexport default class Refer extends Component, ReferStates> {\n\n static propTypes = {};\n state: Readonly = {\n header: \"\",\n messageToDisplay: \"\",\n deactivateRequest: false,\n redirectToError: false,\n redirectToSuccess: false,\n redirectToNoInterest: false,\n loading: true,\n showLinkedinLogin: false,\n surveyRegistrationId: 0,\n redirectToNoLinkedIn: false,\n requireManualVerification: true\n }\n\n async componentDidMount() {\n const queries = new URLSearchParams(this.props.location.search);\n const refId: string = String(queries.get('refId'));\n const code = queries.get('code');\n try {\n const surveyRequestKwStatusMapInfo: SurveyRequestKwStatusMapInfo = await getSurveyKwStatusMapByRefId(refId);\n if (!code) {\n this.setState({\n header: surveyRequestKwStatusMapInfo.header,\n messageToDisplay: surveyRequestKwStatusMapInfo.messageToDisplay,\n deactivateRequest: surveyRequestKwStatusMapInfo.deactivateRequest,\n loading: false,\n });\n } else {\n this.setState({\n requireManualVerification: surveyRequestKwStatusMapInfo.requireManualVerification,\n loading: false,\n });\n }\n } catch (error) {\n this.setState({redirectToError: true});\n }\n }\n\n handleYesClick = () => {\n this.setState({showLinkedinLogin: true});\n }\n\n handleNoClick = () => {\n this.setState({ redirectToNoInterest: true });\n }\n\n handleNoLinkedInClick = () => {\n this.setState({ redirectToNoLinkedIn: true });\n }\n\n renderErrorMessage = () => {\n if (this.state.redirectToError) {\n return ;\n } else if (this.state.redirectToNoInterest) {\n return ;\n }\n }\n\n renderLoader = () => {\n if (this.state.loading) {\n return
\n }\n }\n\n renderLongRefer = (refId: string) => {\n if (this.state.redirectToNoLinkedIn) {\n return ; \n }\n }\n\n /*\n ** @code = authorization code from linkedin api\n ** @redirectUri = redirect uri from linkedin api\n ** @error = error message sign in failed\n */\n callbackLinkedIn = async (error: any, code: any, redirectUri: any) => {\n this.setState({loading: true});\n\n if (error) {\n this.setState({redirectToError: true});\n }\n\n //call backend api to take token\n try {\n const res = await getSurveyExpertLinkedinDetails(code, redirectUri);\n this.setState({...this.state, redirectToSuccess: true, surveyRegistrationId: res.surveyExpertRegistrationId, loading: false, email:res.email });\n } catch (error) {\n this.setState({redirectToSuccess: false, redirectToError: true, loading: false});\n }\n };\n\n render() {\n const queries = new URLSearchParams(this.props.location.search);\n const code = queries.get('code');\n const refId = String(queries.get('refId'));\n const showLinkedLogin = !this.state.redirectToSuccess && !this.state.redirectToError;\n const showLinkedinButton = this.state.showLinkedinLogin || code !== null;\n const showLongRefer = this.state.redirectToNoLinkedIn;\n\n return (\n
\n {this.renderLoader()}\n {this.renderErrorMessage()}\n {\n (this.state.redirectToSuccess || code) &&\n \n }\n {\n showLinkedLogin &&\n
\n { !this.state.deactivateRequest && \n \n \n \n \n \n \n \n \n }\n {\n showLinkedinButton && \n }\n {\n showLinkedinButton && \n \n \n \n \n \n \n \n }\n {\n showLongRefer && this.renderLongRefer(refId)\n }\n
\n }\n\n
\n );\n }\n\n}\n\n\n\n\n","import React from 'react';\nimport MessageBody from \"./MessageBody\";\n\nexport default () => {\n const header = \"Thanks for letting us know!\";\n const subHeader = \"Sorry it isn't the right survey for you, but we have new surveys starting all the time so hopefully we will see you again soon\";\n return ;\n}","import React, { Component } from \"react\";\nimport { RouteComponentProps } from 'react-router';\nimport { Redirect } from \"react-router-dom\";\n\nimport { Form, Input, Button, Row, Col, Spin, Alert, Popover } from 'antd';\nimport { QuestionCircleTwoTone } from '@ant-design/icons';\n\nimport '../assets/styles/LongRefer.css';\nimport MessageBody from \"./MessageBody\";\nimport { verifySurveyExpertWithRegistration } from '../utils/apis/ExpertSurveyApi';\nimport {VerifySurveyExpertInfo} from \"../utils/models/VerifySurveyExpertInfo\";\n\ninterface ReferRouteProps {\n refId: string\n}\n\ninterface LongReferStates {\n waringMessage?: string,\n waringDescription?: string,\n loading: boolean,\n requiredFieldMissing: boolean,\n professionalEmailMissing: boolean,\n emailDomainNotMatching: boolean,\n redirectToThanksForApplying: boolean,\n redirectToError: boolean,\n guid?: string\n}\n\nexport default class LongRefer extends Component, LongReferStates> {\n\n static propTypes = {};\n\n state: Readonly = {\n waringMessage: \"\",\n waringDescription: \"\",\n loading: false,\n requiredFieldMissing: false,\n professionalEmailMissing: false,\n emailDomainNotMatching: false,\n redirectToError: false,\n redirectToThanksForApplying: false,\n guid: \"\"\n }\n\n header = 'We need a few details from you';\n messageToDisplay = `To ensure a high quality level for our survey, please fill out the below, \n we'll then email you if it seems like you are a fit!`;\n\n emailPopoverContent = (\n
\n

Please note that only PROFESSIONAL EMAIL ADDRESS are accepted!

\n

We only work with professional email addresses that match the public website of the employer (example john.smith@nike.com for www.nike.com)

\n

We do not accept gmail, outlook, yahoo, me, hotmail email addresses

\n
\n );\n\n renderRedirectToError = () => {\n if (this.state.redirectToError) {\n return \n }\n }\n\n renderRedirectToThanksForApplying = () => {\n if (this.state.redirectToThanksForApplying) {\n return \n }\n }\n\n renderLoader = () => {\n if (this.state.loading) {\n return
\n }\n }\n\n validateRequiredFields = (values: VerifySurveyExpertInfo) => {\n if (!values.firstName || !values.firstName.trim() ||\n !values.lastName || !values.lastName.trim() ||\n !values.companyUrl || !values.companyUrl.trim() ||\n !values.email || !values.email.trim() ||\n !values.jobRole || !values.jobRole.trim() ||\n !values.country || !values.country.trim()) {\n this.setState({ requiredFieldMissing: true });\n } else {\n this.setState({ requiredFieldMissing: false });\n }\n }\n\n validateEmail = (companyUrl: string, email: string) => {\n if (!companyUrl || !email) {\n return;\n }\n const emailDomain = email.substring(email.indexOf(\"@\") + 1);\n var websiteDomain = (new URL(companyUrl)).hostname.replaceAll('www.', '');\n\n // email domain and website domain should match\n if (emailDomain !== websiteDomain) {\n this.setState({ emailDomainNotMatching: true });\n return;\n }\n\n // should not use any public domain like @gmail, @outlook, @yahoo, @me, @hotmail\n if (emailDomain.endsWith('gmail.com') || emailDomain.endsWith('outlook.com') || emailDomain.endsWith('yahoo.com') ||\n emailDomain.endsWith('me.com') || emailDomain.endsWith('hotmail.com')) {\n this.setState({ professionalEmailMissing: true });\n return;\n }\n this.setState({ professionalEmailMissing: false, emailDomainNotMatching: false });\n }\n\n onFinish = async (values) => {\n const queries = new URLSearchParams(this.props.location.search);\n const refId = String(queries.get('refId'));\n\n this.validateRequiredFields(values);\n this.validateEmail(values.companyUrl, values.email);\n\n if (this.state.professionalEmailMissing || this.state.requiredFieldMissing || this.state.emailDomainNotMatching) {\n return;\n }\n\n this.setState({ loading: true });\n\n const requestData: VerifySurveyExpertInfo = {\n firstName: values.firstName,\n lastName: values.lastName,\n companyUrl: values.companyUrl,\n email: values.email,\n jobRole: values.jobRole,\n country: values.country,\n linkedinProfile: `https://www.linkedin.com/in/fake-referredsurvey-${values.email}`,\n refId: refId\n }\n try {\n const res = await verifySurveyExpertWithRegistration(requestData);\n this.setState({ loading: false, guid: res.guid, redirectToThanksForApplying: true });\n } catch (error) {\n this.setState({ loading: false, redirectToError: true });\n }\n }\n\n onClose = (e: React.MouseEvent) => {\n this.setState({ requiredFieldMissing: false, professionalEmailMissing: false });\n };\n\n renderFormValidationMessage = () => {\n let message = '';\n let description = '';\n if (this.state.requiredFieldMissing) {\n message = 'All fields are required';\n description = 'Please input all of them to finish your submission';\n } else if (this.state.professionalEmailMissing) {\n message = 'Please use a professional email';\n description = 'Without a professional email you will not be able to take the survey';\n } else if (this.state.emailDomainNotMatching) {\n message = `The email domain doesn't match with the domain of the company website`;\n description = 'We only work with professional email addresses that match with the public website of the employer (example john.smith@nike.com for www.nike.com)';\n }\n\n if (this.state.requiredFieldMissing || this.state.professionalEmailMissing || this.state.emailDomainNotMatching) {\n return \n \n \n \n \n }\n }\n\n render() {\n return (\n <>\n {this.renderRedirectToError()}\n {this.renderRedirectToThanksForApplying()}\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n />\n \n \n \n \n \n \n \n \n \n \n
\n \n
\n {\n this.renderFormValidationMessage()\n }\n \n );\n }\n\n}\n\n\n\n\n","import React from 'react';\nimport MessageBody from \"./MessageBody\";\n\nexport default () => {\n const header: string = 'Thanks for your submission!';\n const subtext: string = `Someone from our team will reach out to you within the next 48 hours if you seem like a good fit for the survey.\n\nPlease look out for an email from an @newtonx.com address with your unique survey link.\n\nIn some cases, the email can go into your spam folder. Please check it to ensure you get access to it.`\n return \n}","import React, { Component } from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport './App.less';\nimport SurveyRedirect from './components/Redirect';\nimport HomeRedirect from './components/HomeRedirect';\nimport Error from './components/Error';\nimport TermsAndConditions from \"./components/TermsAndConditions\";\nimport Panel from \"./components/Panel\";\nimport Refer from \"./components/Refer\";\nimport NoInterest from \"./components/NoInterest\";\nimport LongRefer from './components/LongRefer';\nimport ThanksForApplying from \"./components/ThanksForApplying\";\n\nclass App extends Component {\n render() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport './index.scss';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(\n \n \n , \n document.getElementById('root')\n );\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}