{"version":3,"sources":["webpack:///./src/components/QuestionnaireApp/useStartupNameForm.js","webpack:///./src/helpers/validatorStartupName.js","webpack:///./src/helpers/validation.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.string.replace.js","webpack:///./src/helpers/amplitude.js","webpack:///./src/components/ActivitySelector/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/get-substitution.js","webpack:///./src/components/QuestionnaireApp/AnswerButtons.js","webpack:///./src/components/QuestionnaireApp/data/usePersonaDescData.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.array.sort.js","webpack:///./src/components/ActivitySelector/defines.js","webpack:///./src/helpers/fbPixel.js","webpack:///./src/helpers/personalityScore.js","webpack:///./src/helpers/segment.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./src/aws-exports.js","webpack:///./src/components/QuestionnaireApp/ProgressWrapper.js","webpack:///./src/components/QuestionnaireApp/helpers/steps.js","webpack:///./src/components/QuestionnaireApp/data/useQuestionIntroData.js","webpack:///./src/components/QuestionnaireApp/Intro.js","webpack:///./src/components/QuestionnaireApp/IntroSection.js","webpack:///./src/components/QuestionnaireApp/BackButton.js","webpack:///./src/components/QuestionnaireApp/Activity.js","webpack:///./src/components/QuestionnaireApp/Question.js","webpack:///./src/components/QuestionnaireApp/data/useQuestionData.js","webpack:///./src/helpers/usePortal.js","webpack:///./src/components/QuestionnaireApp/Results.js","webpack:///./src/components/QuestionnaireApp/StartupName.js","webpack:///./src/components/QuestionnaireApp/Step.js","webpack:///./src/components/QuestionnaireApp/index.js","webpack:///./src/helpers/index.js"],"names":["useStartupNameForm","initValue","successCallback","useState","inputValue","setInputValue","inputError","setInputError","handleInputChange","event","persist","value","target","replace","length","validateStartupName","handleSubmit","VALID_NAME_CHARACTERS","split","minLengthIssue","trim","wordLengthIssue","tooLong","map","w","validatorStartupName","Error","wrongCharacters","forEach","char","indexOf","push","checkStartupNameCharacters","maxLengthIssue","canSubmit","name","readableErrorMessage","validity","valueMissing","typeMismatch","validateInput","inputRef","setInputErrors","input","current","checkValidity","errorMessage","errors","validateInputs","inputRefs","allValid","focusFirstInput","focus","startupName","is_valid","toString","fixRegExpWellKnownSymbolLogic","anObject","toLength","toInteger","requireObjectCoercible","advanceStringIndex","getSubstitution","regExpExec","max","Math","min","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","O","this","replacer","undefined","call","String","regexp","res","done","rx","S","functionalReplace","global","fullUnicode","unicode","lastIndex","results","result","it","accumulatedResult","nextSourcePosition","i","matched","position","index","captures","j","namedCaptures","groups","replacerArgs","concat","replacement","apply","slice","trackAmplitude","data","window","location","hostname","amplitude","getInstance","logEvent","mixpanel","track","trackAmplitudeIdentity","sub","email","identity","Identify","set","identify","people","$email","trackAmplitudeRevenue","price","quantity","revenue","Revenue","setPrice","setQuantity","logRevenueV2","ActivitySelector","buttonLabel","initDetails","initSelectedId","smallLabels","hasSelected","setHasSelected","selectedId","setSelectedId","detailsValue","setDetailsValue","level","lead","placeholder","type","id","onChange","e","onClick","activities","title","answers","Object","keys","k","sort","a","b","handleSelect","toObject","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","module","exports","str","tailPos","m","symbols","match","ch","capture","charAt","n","f","AnswerButtons","oneColumn","answer","handleClick","selected","key","usePersonaDescData","useStaticQuery","allPersonaDescriptionsJson","edges","reduce","obj","item","node","persona_description_id","text","title_plain","$","aFunction","fails","arrayMethodIsStrict","test","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","proto","forced","comparefn","2","8","1","18","5","4","12","10","15","14","16","13","26","19","20","11","21","3","22","17","trackFB","trackCustomFB","trackFBIdentity","getPersonaFromScore","score","flavor","scoreRaw","F_CLASSIC","F_TRENDY","getFlavorFromScore","persona","P_RELIABLE","P_BALANCED","P_DISRUPTIVE","P_WITTY","P_PLAYFUL","getPurePersonaFromScore","getPersonaLabel","labels","6","7","9","hasOwnProperty","getPersonaLabelShort","PERSONAS","getSortedPersonas","scores","currentId","sorted","sortScores","getPurePersona","sortable","personaId","parseInt","getNextPersonaId","nextId","trackSegmentEvent","message","analytics","DESCRIPTORS","isForced","inheritIfRequired","defineProperty","getOwnPropertyNames","isRegExp","getFlags","stickyHelpers","redefine","setInternalState","setSpecies","MATCH","wellKnownSymbol","NativeRegExp","RegExp","RegExpPrototype","prototype","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","RegExpWrapper","pattern","flags","sticky","thisIsRegExp","patternIsRegExp","flagsAreUndefined","constructor","source","proxy","configurable","get","awsmobile","connect","saveStatus","questionnaire","currentStep","children","notification","setNotification","useEffect","timer","setTimeout","clearTimeout","steps","active","statusMessage","total","getCurrentStep","basepath","pathname","canViewStep","step","lastReachedStep","findLastReachedStep","activityId","nextStep","useQuestionIntroData","allQuestionIntrosJson","question_intro_id","buttonText","retake","last","dangerouslySetInnerHTML","__html","href","previousStep","navigate","invisible","style","visibility","activityName","saveStepAndGoNext","setActivity","setActivityName","setActivitySelectStage","details","async","activityDetails","API","graphqlOperation","ownProps","selectedAnswerId","updateAnswer","allQuestionsJson","question_id","display","answerId","usePortal","rootElemRef","useRef","rootElem","existingParent","document","querySelector","parentElem","rootContainer","createElement","setAttribute","createRootElement","body","insertBefore","lastElementChild","nextElementSibling","appendChild","remove","childNodes","user","personalityScores","fetchProfile","getPersonalityScores","resetProposals","resetProposalPreviews","setPersona","setProfilePersona","chosenPersona","setChosenPersona","showSelector","setShowSelector","personaText","calculateScores","fetchStatus","modalTarget","small","personaName","simple","createPortal","hidden","handleClose","handleCancel","textSubmit","align","setStartupName","React","createRef","error","ref","redirectIfTooFar","component","props","Amplify","configure","awsconfig","QuestionnaireApp","url","baseProps","getUriParameterByName","path","default","exec","decodeURIComponent"],"mappings":"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","file":"38b849b6b7007a6f41ea26e5d85ff7b73081836c-7f7fcc1b46a0bef3c96e.js","sourcesContent":["import { useState } from \"react\"\nimport { validateStartupName } from \"../../helpers/validation\"\n\nconst useStartupNameForm = (initValue, successCallback) => {\n const [inputValue, setInputValue] = useState(initValue)\n const [inputError, setInputError] = useState(\"\")\n\n const handleInputChange = event => {\n event.persist()\n\n // make sure \"minute\" symbol is parsed as apostrophe\n let value = event.target.value.replace(\"'\", \"’\")\n setInputValue(value)\n\n if (value.length > 1) validateStartupName(value, setInputError)\n }\n\n const handleSubmit = () => {\n if (validateStartupName(inputValue, setInputError) !== true) return\n successCallback()\n }\n\n return {\n inputError,\n inputValue,\n handleInputChange,\n handleSubmit,\n }\n}\n\nexport default useStartupNameForm\n","// extracted from monorepo\n// didn't use the dependency directly to avoid exposing private functions to the public\nconst VALID_NAME_CHARACTERS = \" ABCDEFGHIJKLMNOPQRSTUVWXYZÇŒabcdefghijklmnopqrstuvwxyzàêéëèîïöñùçœ&-+*|0123456789.:,!?’\".split(\n \"\"\n)\n\nconst checkStartupNameCharacters = value => {\n let wrongCharacters = []\n\n value.split(\"\").forEach(char => {\n if (VALID_NAME_CHARACTERS.indexOf(char) === -1) wrongCharacters.push(char)\n })\n\n return wrongCharacters\n}\n\nconst minLengthIssue = value => value.trim().length < 2\n\nconst wordLengthIssue = value => {\n let tooLong = false\n let words = value.split(\" \")\n words.map(w => {\n if (w.length > 12) tooLong = true\n return null\n })\n return tooLong\n}\n\nconst validatorStartupName = value => {\n if (typeof value !== \"string\") throw new Error(\"param should be a string\")\n\n const wrongCharacters = checkStartupNameCharacters(value)\n const maxLengthIssue = value.length > 22\n const canSubmit =\n maxLengthIssue === false &&\n wrongCharacters.length === 0 &&\n minLengthIssue(value) === false &&\n wordLengthIssue(value) === false\n\n return {\n canSubmit,\n minLengthIssue: minLengthIssue(value),\n wordLengthIssue: wordLengthIssue(value),\n name: value,\n maxLengthIssue,\n wrongCharacters,\n }\n}\n\nexport { validatorStartupName }\n","import { validatorStartupName } from \"./validatorStartupName\"\n\nconst readableErrorMessage = (name, validity) => {\n if (name === \"tos\" && validity.valueMissing === true)\n return \"you need to accept our terms and conditions to purchase this logo.\"\n if (validity.valueMissing === true) return \"this field is required\"\n if (validity.typeMismatch === true) return `this is not a valid ${name}`\n return \"this field is not valid\"\n}\n\nexport const validateInput = (inputRef, setInputErrors) => {\n let input = inputRef.current\n let name = input.name\n\n if (input.checkValidity() !== true) {\n let errorMessage = readableErrorMessage(name, input.validity)\n setInputErrors(errors => ({ ...errors, [name]: errorMessage }))\n } else setInputErrors(errors => ({ ...errors, [name]: \"\" }))\n\n return\n}\n\nexport const validateInputs = (inputRefs, setInputErrors) => {\n let allValid = true\n let focusFirstInput = false\n\n inputRefs.map(inputRef => {\n let input = inputRef.current\n let name = input.name\n\n if (input.checkValidity() !== true) {\n allValid = false\n let errorMessage = readableErrorMessage(name, input.validity)\n setInputErrors(errors => ({ ...errors, [name]: errorMessage }))\n\n // give focus to first invalid input\n if (focusFirstInput !== true) {\n input.focus()\n focusFirstInput = true\n }\n } else setInputErrors(errors => ({ ...errors, [name]: \"\" }))\n\n return inputRef\n })\n\n return allValid\n}\n\nexport const validateStartupName = (startupName, setInputError) => {\n const is_valid = validatorStartupName(startupName)\n let errorMessage = \"\"\n\n if (is_valid.canSubmit) {\n setInputError(\"\")\n return true\n } else if (is_valid.minLengthIssue === true)\n errorMessage = \"Startup name should be at least 2 characters long.\"\n else if (is_valid.maxLengthIssue === true)\n errorMessage =\n \"We don't support startup names longer than 22 characters for now.\"\n else if (is_valid.wordLengthIssue === true)\n errorMessage =\n \"Please add a space between words if you can. We don't support words longer than 12 characters for now.\"\n else if (is_valid.wrongCharacters.length > 0)\n errorMessage = `We don't support these characters for now: ${is_valid.wrongCharacters.toString()}.`\n\n setInputError(errorMessage)\n return false\n}\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n","const trackAmplitude = (event, data = {}) => {\n // only track events on live website\n if (window.location.hostname.indexOf(\"logology.co\") > -1) {\n if (window && window.amplitude) {\n window.amplitude.getInstance().logEvent(event, data)\n if (window.mixpanel) {\n window.mixpanel.track(event, data)\n }\n }\n }\n}\n\nconst trackAmplitudeIdentity = (sub, email) => {\n if (window.location.hostname.indexOf(\"logology.co\") > -1) {\n if (window && window.amplitude) {\n const identity = new window.amplitude.Identify().set(\"email\", email)\n window.amplitude.getInstance().identify(identity)\n if (window.mixpanel) {\n window.mixpanel.people.set({\n $email: email,\n })\n window.mixpanel.identify(sub)\n }\n }\n }\n}\n\nconst trackAmplitudeRevenue = (price, quantity) => {\n if (window.location.hostname.indexOf(\"logology.co\") > -1) {\n if (window && window.amplitude) {\n const revenue = new window.amplitude.Revenue()\n .setPrice(price)\n .setQuantity(quantity)\n window.amplitude.getInstance().logRevenueV2(revenue)\n }\n }\n}\n\nexport { trackAmplitude, trackAmplitudeRevenue, trackAmplitudeIdentity }\n","import React, { useState } from \"react\"\nimport {\n Button,\n FormInput,\n QuestionnaireActionBtns,\n Text,\n Title,\n} from \"@thedgbrt/logology-ui-components\"\nimport AnswerButtons from \"../QuestionnaireApp/AnswerButtons\"\nimport { activities } from \"./defines\"\n\nconst ActivitySelector = ({\n buttonLabel,\n initDetails,\n initSelectedId,\n successCallback,\n smallLabels,\n}) => {\n const [hasSelected, setHasSelected] = useState(false)\n const [selectedId, setSelectedId] = useState(initSelectedId)\n const [detailsValue, setDetailsValue] = useState(initDetails)\n\n const handleSelect = id => {\n setHasSelected(true)\n setSelectedId(id)\n }\n\n const handleSubmit = () =>\n successCallback(selectedId, activities[selectedId].title, detailsValue)\n\n if (hasSelected)\n return (\n <>\n My activity\n \n Details about your activity will help us prioritize future logo\n designs.\n \n setDetailsValue(e.target.value)}\n value={detailsValue}\n />\n\n \n \n \n \n )\n\n return (\n <>\n My activity\n activities[k])\n .sort((a, b) => (a.sort < b.sort ? -1 : a.sort > b.sort))}\n handleSelect={handleSelect}\n selectedId={initSelectedId}\n />\n \n )\n}\n\nexport default ActivitySelector\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport {\n QuestionnaireAnswers,\n QuestionnaireAnswerButton,\n} from \"@thedgbrt/logology-ui-components\"\n\nconst AnswerButtons = ({ answers, oneColumn, handleSelect, selectedId }) => (\n \n {answers.map((answer, index) => (\n handleSelect(answer.id)}\n selected={`_${answer.id}` === selectedId}\n key={index}\n >\n {answer.title}\n \n ))}\n \n)\n\nAnswerButtons.propTypes = {\n answers: PropTypes.array.isRequired,\n}\n\nexport default AnswerButtons\n","import { useStaticQuery, graphql } from \"gatsby\"\n\n// return an id-based object of all persona descriptions\n// with ids as keys\n// {\n// \t1: {text: 'text for persona 1'},\n// \t2: {text: 'text for persona 2'}\n// }\nexport const usePersonaDescData = startupName => {\n const data = useStaticQuery(graphql`\n {\n allPersonaDescriptionsJson {\n edges {\n node {\n text\n title\n title_plain\n persona_description_id\n }\n }\n }\n }\n `)\n\n const formattedData = data.allPersonaDescriptionsJson.edges.reduce(\n (obj, item) => {\n obj[item.node.persona_description_id] = {\n text: item.node.text.replace(\"__startup_name__\", startupName),\n title: item.node.title.replace(\"__startup_name__\", startupName),\n title_plain: item.node.title_plain.replace(\n \"__startup_name__\",\n startupName\n ),\n }\n return obj\n },\n {}\n )\n\n return formattedData\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n","// \"sort\" is useful to keep \"other\" last\n// const activitiesOld = {\n// 51: {\n// id: 51,\n// sort: \"Artificial Intelligence\",\n// title: \"Artificial Intelligence\",\n// },\n// 65: { id: 65, sort: \"Biotech\", title: \"Biotech\" },\n// 49: { id: 49, sort: \"Cloud Computing\", title: \"Cloud Computing\" },\n// 61: { id: 61, sort: \"Code & Development\", title: \"Code & Development\" },\n// 55: { id: 55, sort: \"Communication\", title: \"Communication\" },\n// 54: { id: 54, sort: \"Crypto & Blockchain\", title: \"Crypto & Blockchain\" },\n// 53: { id: 53, sort: \"Cyber Security\", title: \"Cyber Security\" },\n// 41: { id: 41, sort: \"Dating\", title: \"Dating\" },\n// 62: { id: 62, sort: \"Design\", title: \"Design\" },\n// 43: { id: 43, sort: \"Education\", title: \"Education\" },\n// 52: { id: 52, sort: \"Finance\", title: \"Finance\" },\n// 46: { id: 46, sort: \"Gaming\", title: \"Gaming\" },\n// 45: { id: 45, sort: \"Human Resources\", title: \"Human Resources\" },\n// 60: { id: 60, sort: \"Marketing & Sales\", title: \"Marketing & Sales\" },\n// 42: { id: 42, sort: \"Podcast\", title: \"Podcast\" },\n// 44: { id: 44, sort: \"Productivity\", title: \"Productivity\" },\n// 50: { id: 50, sort: \"Robotics\", title: \"Robotics\" },\n// 48: { id: 48, sort: \"ZZZ\", title: \"Other\" },\n// }\n\nconst activities = {\n 2: {\n id: 2,\n sort: \"Agriculture & Energy\",\n title: \"Agriculture & Energy\",\n },\n 8: {\n id: 8,\n sort: \"Artificial Intelligence\",\n title: \"Artificial Intelligence\",\n },\n 1: {\n id: 1,\n sort: \"Beauty & Fashion\",\n title: \"Beauty & Fashion\",\n },\n 18: {\n id: 18,\n sort: \"Code & Development\",\n title: \"Code & Development\",\n },\n 5: {\n id: 5,\n sort: \"Communication & Media\",\n title: \"Communication & Media\",\n },\n 4: { id: 4, sort: \"Design\", title: \"Design\" },\n 12: { id: 12, sort: \"Education\", title: \"Education\" },\n 10: { id: 10, sort: \"Finance\", title: \"Finance\" },\n 15: {\n id: 15,\n sort: \"Food & Restaurant\",\n title: \"Food & Restaurant\",\n },\n 14: { id: 14, sort: \"Gaming\", title: \"Gaming\" },\n 16: {\n id: 16,\n sort: \"Health & Life Sciences\",\n title: \"Health & Life Sciences\",\n },\n 13: {\n id: 13,\n sort: \"Human Resources\",\n title: \"Human Resources\",\n },\n 26: { id: 26, sort: \"Love & Dating\", title: \"Love & Dating\" },\n 19: {\n id: 19,\n sort: \"Marketing & Sales\",\n title: \"Marketing & Sales\",\n },\n 20: {\n id: 20,\n sort: \"Media, Music, Image\",\n title: \"Media, Music, Image\",\n },\n 11: { id: 11, sort: \"Productivity\", title: \"Productivity\" },\n 21: {\n id: 21,\n sort: \"Real Estate & Construction\",\n title: \"Real Estate & Construction\",\n },\n 3: {\n id: 3,\n sort: \"Security & Blockchain\",\n title: \"Security & Blockchain\",\n },\n 22: {\n id: 22,\n sort: \"Sport & Fitness\",\n title: \"Sport & Fitness\",\n },\n 17: { id: 17, sort: \"ZZZ\", title: \"Other\" },\n}\n\nexport { activities }\n","const trackFB = (event, data = {}) => {\n // only track events on live website\n // if (window.location.hostname.indexOf(\"logology.co\") > -1) {\n // if (window && window.fbq) {\n // window.fbq(\"track\", event, data)\n // }\n // } else {\n // console.log(event, data)\n // }\n}\n\nconst trackCustomFB = (event, data = {}) => {\n // only track events on live website\n // if (window.location.hostname.indexOf(\"logology.co\") > -1) {\n // if (window && window.fbq) {\n // window.fbq(\"trackCustom\", event, data)\n // }\n // } else {\n // console.log(event, data)\n // }\n}\n\nconst trackFBIdentity = email => {\n // if (window.location.hostname.indexOf(\"logology.co\") > -1) {\n // if (window && window.fbq) {\n // window.fbq(\"init\", process.env.GATSBY_FACEBOOK_PIXEL, { em: email })\n // }\n // }\n}\n\nexport { trackCustomFB, trackFB, trackFBIdentity }\n","const getPurePersonaFromScore = scoreRaw => {\n const score = {\n P_RELIABLE: scoreRaw.P_RELIABLE,\n P_BALANCED: scoreRaw.P_BALANCED,\n P_DISRUPTIVE: scoreRaw.P_DISRUPTIVE,\n P_WITTY: scoreRaw.P_WITTY,\n P_PLAYFUL: scoreRaw.P_PLAYFUL,\n }\n\n const highestKey = Object.keys(score).reduce((a, b) =>\n score[a] > score[b] ? a : b\n )\n\n return highestKey\n}\n\nconst getFlavorFromScore = scoreRaw => {\n const score = {\n F_CLASSIC: scoreRaw.F_CLASSIC,\n F_TRENDY: scoreRaw.F_TRENDY,\n }\n\n const highestKey = Object.keys(score).reduce((a, b) =>\n score[a] > score[b] ? a : b\n )\n\n return highestKey\n}\n\nconst getPersonaFromScore = score => {\n if (score === null) return 1\n\n const flavor = getFlavorFromScore(score)\n const persona = getPurePersonaFromScore(score)\n\n if (flavor === \"F_CLASSIC\") {\n if (persona === \"P_RELIABLE\") return 1\n if (persona === \"P_BALANCED\") return 3\n if (persona === \"P_DISRUPTIVE\") return 5\n if (persona === \"P_WITTY\") return 7\n if (persona === \"P_PLAYFUL\") return 9\n } else if (flavor === \"F_TRENDY\") {\n if (persona === \"P_RELIABLE\") return 2\n if (persona === \"P_BALANCED\") return 4\n if (persona === \"P_DISRUPTIVE\") return 6\n if (persona === \"P_WITTY\") return 8\n if (persona === \"P_PLAYFUL\") return 10\n }\n\n return 1\n}\n\nconst getPersonaLabel = id => {\n const labels = {\n 1: \"reliable & classic\",\n 2: \"reliable & original\",\n 3: \"kind & classic\",\n 4: \"kind & original\",\n 5: \"visionary & classic\",\n 6: \"visionary & original\",\n 7: \"witty & classic\",\n 8: \"witty & original\",\n 9: \"playful & classic\",\n 10: \"playful & original\",\n }\n if (labels.hasOwnProperty(id)) return labels[id]\n return \"error loading persona\"\n}\n\nconst getPersonaLabelShort = id => {\n const labels = {\n 1: \"reliable\",\n 2: \"reliable\",\n 3: \"kind\",\n 4: \"kind\",\n 5: \"visionary\",\n 6: \"visionary\",\n 7: \"witty\",\n 8: \"witty\",\n 9: \"playful\",\n 10: \"playful\",\n }\n if (labels.hasOwnProperty(id)) return labels[id]\n return \"error loading persona\"\n}\n\nconst PERSONAS = {\n P_RELIABLE: {\n index: 1,\n id: 1,\n title: \"reliable\",\n key: \"P_RELIABLE\",\n },\n P_BALANCED: {\n index: 3,\n id: 2,\n title: \"kind\",\n key: \"P_BALANCED\",\n },\n P_DISRUPTIVE: {\n index: 5,\n id: 3,\n title: \"visionary\",\n key: \"P_DISRUPTIVE\",\n },\n P_WITTY: {\n index: 7,\n id: 4,\n title: \"witty\",\n key: \"P_WITTY\",\n },\n P_PLAYFUL: {\n index: 9,\n id: 5,\n title: \"playful\",\n key: \"P_PLAYFUL\",\n },\n}\n\nconst getSortedPersonas = (scores, currentId) => {\n const sorted = sortScores(scores)\n let result = []\n\n sorted.forEach(persona => {\n if (PERSONAS.hasOwnProperty(persona[0])) {\n let score = scores[persona[0]]\n\n if (\n getPurePersona(PERSONAS[persona[0]].index) === getPurePersona(currentId)\n )\n return\n\n if (score > 0)\n result.push({\n ...PERSONAS[persona[0]],\n score: scores[persona[0]],\n })\n }\n })\n\n return result\n}\n\nconst sortScores = scores => {\n let sortable = []\n for (let key in scores) {\n sortable.push([key, scores[key]])\n }\n const sorted = sortable.sort((a, b) => b[1] - a[1])\n\n return sorted\n}\n\nconst getPurePersona = personaId => {\n switch (parseInt(personaId)) {\n case 1:\n case 2:\n return 1\n case 3:\n case 4:\n return 3\n case 5:\n case 6:\n return 5\n case 7:\n case 8:\n return 7\n case 9:\n case 10:\n return 9\n default:\n return null\n }\n}\n\nconst getPurePersonaLabel = personaId => {\n switch (parseInt(personaId)) {\n case 1:\n case 2:\n return \"reliable\"\n case 3:\n case 4:\n return \"kind\"\n case 5:\n case 6:\n return \"visionary\"\n case 7:\n case 8:\n return \"witty\"\n case 9:\n case 10:\n return \"playful\"\n default:\n return null\n }\n}\n\nconst getNextPersonaId = (personaId, nextId) => {\n const flavor =\n [2, 4, 6, 8, 10].indexOf(personaId) > -1 ? \"F_TRENDY\" : \"F_CLASSIC\"\n if (flavor === \"F_TRENDY\") return nextId + 1\n return nextId\n}\n\nexport {\n getFlavorFromScore,\n getNextPersonaId,\n getPersonaFromScore,\n getPurePersona,\n getPurePersonaLabel,\n getPurePersonaFromScore,\n getPersonaLabel,\n getPersonaLabelShort,\n getSortedPersonas,\n}\n","const trackSegmentEvent = (type, message, data = null) => {\n // only track events on live website\n if (window.location.hostname.indexOf(\"logology.co\") > -1) {\n if (window && window.analytics) window.analytics[type](message, data)\n }\n}\n\nexport { trackSegmentEvent }\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setInternalState = require('../internals/internal-state').set;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","/* eslint-disable */\n// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\n\nconst awsmobile = {\n \"aws_project_region\": \"us-east-1\",\n \"aws_cloud_logic_custom\": [\n {\n \"name\": \"OrderSuccess\",\n \"endpoint\": \"https://ir5mfxwkm2.execute-api.us-east-1.amazonaws.com/production\",\n \"region\": \"us-east-1\"\n },\n {\n \"name\": \"brandpreview\",\n \"endpoint\": \"https://din2h8ly2d.execute-api.us-east-1.amazonaws.com/production\",\n \"region\": \"us-east-1\"\n },\n {\n \"name\": \"cartpreview\",\n \"endpoint\": \"https://rmndc8amhg.execute-api.us-east-1.amazonaws.com/production\",\n \"region\": \"us-east-1\"\n },\n {\n \"name\": \"logoconcept\",\n \"endpoint\": \"https://b0u6f8m7r2.execute-api.us-east-1.amazonaws.com/production\",\n \"region\": \"us-east-1\"\n },\n {\n \"name\": \"logoproposal\",\n \"endpoint\": \"https://oubu13etq4.execute-api.us-east-1.amazonaws.com/production\",\n \"region\": \"us-east-1\"\n },\n {\n \"name\": \"optinbrandingcourse\",\n \"endpoint\": \"https://sc3s1lswl5.execute-api.us-east-1.amazonaws.com/production\",\n \"region\": \"us-east-1\"\n },\n {\n \"name\": \"ordercreatesession\",\n \"endpoint\": \"https://90u4a1momi.execute-api.us-east-1.amazonaws.com/production\",\n \"region\": \"us-east-1\"\n },\n {\n \"name\": \"personalityscore\",\n \"endpoint\": \"https://yhq4504cal.execute-api.us-east-1.amazonaws.com/production\",\n \"region\": \"us-east-1\"\n },\n {\n \"name\": \"registerforbeta\",\n \"endpoint\": \"https://e0qcwn5yf2.execute-api.us-east-1.amazonaws.com/production\",\n \"region\": \"us-east-1\"\n },\n {\n \"name\": \"requestcustom\",\n \"endpoint\": \"https://rzb6e0i24i.execute-api.us-east-1.amazonaws.com/production\",\n \"region\": \"us-east-1\"\n },\n {\n \"name\": \"submitidea\",\n \"endpoint\": \"https://eew6ro65rh.execute-api.us-east-1.amazonaws.com/production\",\n \"region\": \"us-east-1\"\n },\n {\n \"name\": \"userprofileinit\",\n \"endpoint\": \"https://bfxvqi3vt6.execute-api.us-east-1.amazonaws.com/production\",\n \"region\": \"us-east-1\"\n },\n {\n \"name\": \"userprofilelocalcheck\",\n \"endpoint\": \"https://c1huextb7k.execute-api.us-east-1.amazonaws.com/production\",\n \"region\": \"us-east-1\"\n }\n ],\n \"aws_appsync_graphqlEndpoint\": \"https://47jau44nazehta6h6swylhqlnu.appsync-api.us-east-1.amazonaws.com/graphql\",\n \"aws_appsync_region\": \"us-east-1\",\n \"aws_appsync_authenticationType\": \"AMAZON_COGNITO_USER_POOLS\",\n \"aws_cognito_identity_pool_id\": \"us-east-1:1b729fc7-77f5-48a3-9706-e5413e93fad6\",\n \"aws_cognito_region\": \"us-east-1\",\n \"aws_user_pools_id\": \"us-east-1_aeOLBFEKO\",\n \"aws_user_pools_web_client_id\": \"18vsr9qt4trn8qlp7cq4g4hhij\",\n \"oauth\": {\n \"domain\": \"logology-production.auth.us-east-1.amazoncognito.com\",\n \"scope\": [\n \"phone\",\n \"email\",\n \"openid\",\n \"profile\",\n \"aws.cognito.signin.user.admin\"\n ],\n \"redirectSignIn\": \"https://www.logology.co/signin-redirect/\",\n \"redirectSignOut\": \"https://www.logology.co/\",\n \"responseType\": \"token\"\n },\n \"federationTarget\": \"COGNITO_USER_AND_IDENTITY_POOLS\",\n \"aws_cognito_username_attributes\": [\n \"EMAIL\"\n ],\n \"aws_cognito_social_providers\": [\n \"GOOGLE\"\n ],\n \"aws_cognito_signup_attributes\": [\n \"EMAIL\"\n ],\n \"aws_cognito_mfa_configuration\": \"OFF\",\n \"aws_cognito_mfa_types\": [\n \"SMS\"\n ],\n \"aws_cognito_password_protection_settings\": {\n \"passwordPolicyMinLength\": 8,\n \"passwordPolicyCharacters\": []\n },\n \"aws_cognito_verification_mechanisms\": [\n \"EMAIL\"\n ],\n \"aws_user_files_s3_bucket\": \"logology-front-main-storage-production\",\n \"aws_user_files_s3_bucket_region\": \"us-east-1\",\n \"aws_dynamodb_all_tables_region\": \"us-east-1\",\n \"aws_dynamodb_table_schemas\": [\n {\n \"tableName\": \"PreviewLimitIP-production\",\n \"region\": \"us-east-1\"\n },\n {\n \"tableName\": \"PreviewLimitStartupName-production\",\n \"region\": \"us-east-1\"\n },\n {\n \"tableName\": \"PreviewLimitUserId-production\",\n \"region\": \"us-east-1\"\n },\n {\n \"tableName\": \"logoPreviewLimits-production\",\n \"region\": \"us-east-1\"\n }\n ]\n};\n\n\nexport default awsmobile;\n","import React, { useState, useEffect } from \"react\"\nimport { connect } from \"react-redux\"\nimport { Grid2QuestionnaireProgressWrapper } from \"@thedgbrt/logology-ui-components\"\n\nconst ProgressWrapper = ({ currentStep, children, saveStatus }) => {\n const [notification, setNotification] = useState(false)\n\n useEffect(() => {\n if (saveStatus === \"success\") {\n setNotification(true)\n const timer = setTimeout(() => {\n setNotification(false)\n }, 2000)\n return () => clearTimeout(timer)\n }\n }, [saveStatus])\n\n if (!currentStep || currentStep < 1) return children\n\n const getSteps = () => [\n {\n name: \"my activity\",\n active: currentStep >= 0,\n },\n {\n name: \"brand personality\",\n active: currentStep >= 3,\n },\n {\n name: \"marketing voice\",\n active: currentStep >= 11,\n },\n {\n name: \"test results\",\n active: currentStep >= 16,\n },\n {\n name: \"tailored logos\",\n active: false,\n },\n ]\n\n return (\n \n {children}\n \n )\n}\n\nexport default connect(({ questionnaire }) => {\n return { saveStatus: questionnaire.saveStatus }\n})(ProgressWrapper)\n","export const getCurrentStep = basepath =>\n parseInt(window.location.pathname.replace(basepath, \"\"))\n\nexport const canViewStep = (step, lastReachedStep) => {\n if (step <= 2) return true\n return lastReachedStep >= step - 1\n}\n\nexport const getLastReachedStep = ({ answers, activityId, startupName }) => {\n const lastReachedStep = findLastReachedStep({\n answers,\n activityId,\n startupName,\n })\n return lastReachedStep\n}\n\nconst findLastReachedStep = ({ answers, activityId, startupName }) => {\n let step = 0\n\n // step 1 is startupName\n if (startupName === \"\") return step\n step = 2\n\n // step 3 is activity\n if (activityId === \"\" || activityId === 0) return step\n step = 3\n\n // step 3 is intro to personality questions\n\n // step 4-11 (questions [1-8]) are personnality questions\n for (let i = 1; i <= 8; i++) {\n let nextStep = i + 4\n if (answers[`_${i}`] !== null) step = nextStep\n else return step\n }\n\n // step 12 is intro to marketing questions\n\n // step 13-15 (questions [9-11]) are marketing questions\n for (let i = 9; i <= 11; i++) {\n let nextStep = i + 5\n if (answers[`_${i}`] !== null) step = nextStep\n else return step\n }\n\n return step\n}\n\nexport const hasCompletedQuestionnaire = ({ answers }) =>\n findLastReachedStep(answers) === 16\n\n// redirect to next question if questionnaire was started\n// otherwise redirect to questionnaire intro\nexport const getRedirectStep = lastReachedStep => {\n if (lastReachedStep > 2) return lastReachedStep + 1\n return \"\"\n}\n","import { useStaticQuery, graphql } from \"gatsby\"\n\n// return an id-based object of all question intros\n// with ids as keys\n// {\n// \t1: {title: 'title', text: 'text', buttonText: 'buttonText' id: '1'},\n// \t2: {title: 'title', text: 'text', buttonText: 'buttonText' id: '2'}\n// }\nexport const useQuestionIntroData = startupName => {\n const data = useStaticQuery(graphql`\n {\n allQuestionIntrosJson {\n edges {\n node {\n buttonText\n text\n title\n question_intro_id\n }\n }\n }\n }\n `)\n\n const formattedData = data.allQuestionIntrosJson.edges.reduce((obj, item) => {\n obj[item.node.question_intro_id] = {\n buttonText: item.node.buttonText,\n text: item.node.text.replace(\"__startup_name__\", startupName),\n title: item.node.title.replace(\"__startup_name__\", startupName),\n }\n return obj\n }, {})\n\n return formattedData\n}\n","import React, { useEffect } from \"react\"\nimport { connect } from \"react-redux\"\nimport {\n Button,\n Grid2QuestionnaireIntro,\n QuestionnaireActionBtns,\n Text,\n Title,\n} from \"@thedgbrt/logology-ui-components\"\nimport { useQuestionIntroData } from \"./data/useQuestionIntroData\"\nimport { trackSegmentEvent } from \"../../helpers/segment\"\nimport { trackAmplitude } from \"../../helpers/amplitude\"\n\nconst Intro = ({ basepath, lastReachedStep, retake, startupName, type }) => {\n useEffect(() => {\n if (retake === true) {\n trackSegmentEvent(\"track\", \"Questionnaire retake\")\n trackAmplitude(\"Questionnaire retake\")\n }\n }, [retake])\n\n const { buttonText, title, text } = useQuestionIntroData(startupName)[1]\n return (\n \n \n {retake ? \"Hello again! \" : title}\n \n \n \n {lastReachedStep > 0 ? (\n <>\n {retake ? (\n \n ) : (\n \n )}\n \n ) : (\n \n )}\n \n \n )\n}\n\nexport default connect(({ questionnaire }) => ({\n startupName: questionnaire.startupName,\n}))(Intro)\n","import React from \"react\"\nimport {\n Button,\n QuestionnaireActionBtns,\n Text,\n Title,\n} from \"@thedgbrt/logology-ui-components\"\nimport { connect } from \"react-redux\"\nimport { navigate } from \"gatsby\"\nimport { previousStep, nextStep } from \"../../state/actions/questionnaire\"\nimport { useQuestionIntroData } from \"./data/useQuestionIntroData\"\n\nconst IntroSection = ({ id, step, basepath, nextStep }) => {\n // get question intro data from local json file\n const { buttonText, text, title } = useQuestionIntroData()[id]\n\n return (\n <>\n \n {title}\n \n\n \n\n \n {\n nextStep()\n navigate(`${basepath}${step + 1}`)\n }}\n >\n {buttonText + \" →\"}\n \n \n \n )\n}\nexport default connect(\n null,\n { previousStep, nextStep }\n)(IntroSection)\n","import React from \"react\"\nimport { navigate } from \"gatsby\"\nimport { connect } from \"react-redux\"\nimport { previousStep } from \"../../state/actions/questionnaire\"\nimport { QuestionnaireBackButton } from \"@thedgbrt/logology-ui-components\"\n\nconst BackButton = ({ basepath, step, invisible }) => {\n if (invisible)\n return (\n \n \n \n )\n\n return (\n {\n previousStep()\n navigate(`${basepath}${step - 1}`)\n }}\n />\n )\n}\n\nexport default connect(\n null,\n { previousStep }\n)(BackButton)\n","import React from \"react\"\nimport { connect } from \"react-redux\"\nimport { navigate } from \"gatsby\"\nimport API, { graphqlOperation } from \"@aws-amplify/api\"\nimport ActivitySelector from \"../ActivitySelector\"\nimport {\n saveStepAndGoNext,\n setActivity,\n setActivityName,\n setActivitySelectStage,\n} from \"../../state/actions/questionnaire\"\nimport { trackAmplitude } from \"../../helpers/amplitude\"\nimport { trackSegmentEvent } from \"../../helpers/segment\"\n\nconst Activity = ({\n basepath,\n initDetails,\n initSelectedId,\n setActivity,\n setActivityName,\n setActivitySelectStage,\n step,\n saveStepAndGoNext,\n type,\n}) => {\n const successCallback = async (id, title, details) => {\n setActivity(id)\n setActivityName(details)\n setActivitySelectStage(1)\n\n trackSegmentEvent(\"track\", \"Select activity\", {\n activityId: id,\n activityName: title,\n activityDetails: details,\n })\n\n trackAmplitude(\"Select activity\", {\n activityId: id,\n activityName: title,\n activityDetails: details,\n })\n\n setTimeout(() => {\n navigate(`${basepath}${step + 1}`)\n if (type === \"private\") saveStepAndGoNext(API, graphqlOperation)\n }, 250)\n }\n\n return (\n \n )\n}\n\nexport default connect(\n ({ questionnaire }) => ({\n initSelectedId: `_${questionnaire.activityId}`,\n initDetails: questionnaire.activityName,\n }),\n { saveStepAndGoNext, setActivity, setActivityName, setActivitySelectStage }\n)(Activity)\n","import React from \"react\"\nimport { connect } from \"react-redux\"\nimport { navigate } from \"gatsby\"\nimport API, { graphqlOperation } from \"@aws-amplify/api\"\nimport { Title } from \"@thedgbrt/logology-ui-components\"\nimport {\n previousStep,\n updateAnswer,\n saveStepAndGoNext,\n} from \"../../state/actions/questionnaire\"\nimport { useQuestionData } from \"./data/useQuestionData\"\nimport AnswerButtons from \"./AnswerButtons\"\n\n// const enhanceAnswers = (answers, sectorName) =>\n// answers.map(answer => ({\n// ...answer,\n// title: answer.title.replace(\"__sector__\", sectorName),\n// }))\n\nconst Question = ({\n basepath,\n id,\n saveStepAndGoNext,\n selectedAnswerId,\n updateAnswer,\n step,\n type,\n}) => {\n // get question data from local json file\n const { answers, display, title } = useQuestionData()[id]\n // enhance answer text with known data about the user\n // const sectorName = useSectorData()[sectorId].title\n // const answersEnhanced = enhanceAnswers(answers, sectorName)\n\n const handleSelect = answerId => {\n updateAnswer(id, answerId)\n // this delay helps the user understand that his selection worked\n // by showing the answer in a selected state for 250ms\n // before going to the next screen\n setTimeout(() => {\n navigate(`${basepath}${step + 1}`)\n if (type === \"private\") saveStepAndGoNext(API, graphqlOperation)\n }, 250)\n }\n\n return (\n <>\n {title}\n \n \n )\n}\n\nexport default connect(\n ({ questionnaire }, ownProps) => ({\n selectedAnswerId: questionnaire.answers[`_${ownProps.id}`],\n }),\n { updateAnswer, saveStepAndGoNext, previousStep }\n)(Question)\n","import { useStaticQuery, graphql } from \"gatsby\"\n\n// return an id-based object of all questions and answers,\n// with question ids as keys\n// {\n// \t1: {question: 'question', answers: ['answer1', 'answer2'], id: '1'},\n// \t2: {question: 'question', answers: ['answer, 'answer2'], id: '2'}\n// }\nexport const useQuestionData = () => {\n const data = useStaticQuery(graphql`\n {\n allQuestionsJson {\n edges {\n node {\n title\n display\n question_id\n answers {\n id\n title\n }\n }\n }\n }\n }\n `)\n\n const formattedData = data.allQuestionsJson.edges.reduce((obj, item) => {\n obj[item.node.question_id] = item.node\n return obj\n }, {})\n\n return formattedData\n}\n","// source https://www.jayfreestone.com/writing/react-portals-with-hooks/\nimport { useRef, useEffect } from \"react\"\n\n/**\n * Creates DOM element to be used as React root.\n * @returns {HTMLElement}\n */\nfunction createRootElement(id) {\n const rootContainer = document.createElement(\"div\")\n rootContainer.setAttribute(\"id\", id)\n return rootContainer\n}\n\n/**\n * Appends element as last child of body.\n * @param {HTMLElement} rootElem\n */\nfunction addRootElement(rootElem) {\n document.body.insertBefore(\n rootElem,\n document.body.lastElementChild.nextElementSibling\n )\n}\n\n/**\n * Hook to create a React Portal.\n * Automatically handles creating and tearing-down the root elements (no SRR\n * makes this trivial), so there is no need to ensure the parent target already\n * exists.\n * @example\n * const target = usePortal(id, [id]);\n * return createPortal(children, target);\n * @param {String} id The id of the target container, e.g 'modal' or 'spotlight'\n * @returns {HTMLElement} The DOM node to use as the Portal target.\n */\nfunction usePortal(id) {\n const rootElemRef = useRef(null)\n\n useEffect(function setupElement() {\n // Look for existing target dom element to append to\n const existingParent = document.querySelector(`#${id}`)\n // Parent is either a new root or the existing dom element\n const parentElem = existingParent || createRootElement(id)\n\n // If there is no existing DOM element, add a new one.\n if (!existingParent) {\n addRootElement(parentElem)\n }\n\n // Add the detached element to the parent\n parentElem.appendChild(rootElemRef.current)\n\n return function removeElement() {\n rootElemRef.current.remove()\n if (parentElem.childNodes.length === -1) {\n parentElem.remove()\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n /**\n * It's important we evaluate this lazily:\n * - We need first render to contain the DOM element, so it shouldn't happen\n * in useEffect. We would normally put this in the constructor().\n * - We can't do 'const rootElemRef = useRef(document.createElement('div))',\n * since this will run every single render (that's a lot).\n * - We want the ref to consistently point to the same DOM element and only\n * ever run once.\n * @link https://reactjs.org/docs/hooks-faq.html#how-to-create-expensive-objects-lazily\n */\n function getRootElem() {\n if (!rootElemRef.current) {\n rootElemRef.current = document.createElement(\"div\")\n }\n return rootElemRef.current\n }\n\n return getRootElem()\n}\n\nexport default usePortal\n","import React, { useEffect, useState } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { navigate } from \"gatsby\"\nimport { connect } from \"react-redux\"\nimport API, { graphqlOperation } from \"@aws-amplify/api\"\nimport {\n Button,\n ModalGrid,\n ModalPersona,\n QuestionnaireActionBtns,\n QuestionnaireResult,\n QuestionnaireThankYou,\n Spinner,\n} from \"@thedgbrt/logology-ui-components\"\nimport usePortal from \"../../helpers/usePortal\"\nimport { usePersonaDescData } from \"./data/usePersonaDescData\"\nimport { fetchProfile, setProfilePersona } from \"../../state/actions/user\"\nimport { resetProposals } from \"../../state/actions/proposals\"\nimport { resetProposalPreviews } from \"../../state/actions/proposalPreviews\"\nimport {\n getPersonaFromScore,\n getPersonaLabel,\n} from \"../../helpers/personalityScore\"\nimport {\n getPersonalityScores,\n setPersona,\n} from \"../../state/actions/questionnaire\"\nimport { trackSegmentEvent } from \"../../helpers/segment\"\nimport { trackAmplitude } from \"../../helpers/amplitude\"\nimport { trackCustomFB } from \"../../helpers/fbPixel\"\n\nconst Results = ({\n answers,\n fetchProfile,\n getPersonalityScores,\n personalityScores,\n resetProposals,\n resetProposalPreviews,\n startupName,\n setPersona,\n setProfilePersona,\n type,\n}) => {\n const [chosenPersona, setChosenPersona] = useState(1)\n const [showSelector, setShowSelector] = useState(false)\n const personaText = usePersonaDescData(startupName)\n\n const calculateScores = () => getPersonalityScores(API, answers)\n\n useEffect(() => {\n if (!personalityScores || personalityScores.fetchStatus !== \"ok\") return\n const persona = getPersonaFromScore(personalityScores.data)\n setChosenPersona(persona)\n }, [personalityScores])\n\n useEffect(() => {\n calculateScores()\n }, []) // eslint-disable-line\n\n const handleChangePersona = id => {\n setChosenPersona(id)\n setShowSelector(false)\n }\n\n const handleSubmitConfirm = async () => {\n trackSegmentEvent(\"track\", \"Choose persona result\", {\n persona: chosenPersona,\n personaName: getPersonaLabel(chosenPersona),\n })\n trackAmplitude(\"Choose persona result\", {\n persona: chosenPersona,\n personaName: getPersonaLabel(chosenPersona),\n })\n trackCustomFB(\"Complete questionnaire\")\n\n resetProposals()\n resetProposalPreviews()\n\n if (type === \"private\") {\n await setProfilePersona(chosenPersona, API, graphqlOperation)\n await fetchProfile(API, graphqlOperation)\n navigate(\"/myaccount/proposals\")\n } else {\n setPersona(chosenPersona)\n navigate(\"/anonaccount/proposals\")\n }\n }\n\n const renderActions = () => {\n return (\n \n \n \n \n )\n }\n\n const modalTarget = usePortal(\"questionnaire-modal-root\")\n\n if (\n !personalityScores ||\n personalityScores.fetchStatus === \"unknown\" ||\n personalityScores.fetchStatus === \"started\"\n )\n return (\n <>\n {/* @forgiveme, spacing using empty p */}\n

\n \n

We are calculating your results.

\n \n )\n else if (personalityScores.fetchStatus === \"error\")\n return (\n <>\n

There was an error getting your results.

\n \n \n )\n else\n return (\n <>\n \n \n {renderActions()}\n {createPortal(\n