{"version":3,"sources":["shared_images/colored_icons/PrEP-OFF.svg","shared_images/colored_icons/PEP-OFF.svg","shared_images/colored_icons/condoms-OFF.svg","shared_images/colored_icons/hivTesting-OFF.svg","shared_images/colored_icons/treatment-OFF.svg","components/hiv_nav/main_nav_arrow_white.svg","pages/HIV/usa_hiv.jpg","pages/HIV/hiv_in_women_mobile.jpg","pages/HIV/hiv_in_women.jpg","pages/HIV/hiv_in_jackson.jpg","pages/HIV/hiv_racial_breakdown.jpg","pages/sideEffects/side-effects-header-image.jpg","pages/pregnancy/pregnancy-header-image.jpg","pages/start/start-header-image.jpg","pages/welcome/ucsf.svg","pages/why/why-header-image.jpg","components/hiv_nav/main_nav_check_white.svg","pages/std/std-header-image.jpg","pages/protect/protected-header-image.jpg","pages/talkToProvider/provider-header-image.jpg","pages/prevent/images sync /^/.//.*$","pages/prevent/images/PEP-illustration.svg","pages/prevent/images/PrEP-illustration-original.svg","pages/prevent/images/PrEP-illustration.svg","pages/prevent/images/condoms-illustration.svg","pages/prevent/images/hivTesting-illustration.svg","pages/prevent/images/list-menu-arrow.svg","pages/prevent/images/treatment-illustration.svg","pages/useIt/images sync /^/.//.*$","pages/useIt/images/alarm-blue.svg","pages/useIt/images/calendar-light-blue.svg","pages/useIt/images/condoms-green.svg","pages/useIt/images/cross-blue.svg","pages/useIt/images/cross-light-blue.svg","pages/useIt/images/cross-light-orange.svg","pages/useIt/images/cross-orange.svg","pages/useIt/images/female-condom-green.svg","pages/useIt/images/hiv-testing-light-orange.svg","pages/useIt/images/key-blue.svg","pages/useIt/images/key-light-blue.svg","pages/useIt/images/lube-green.svg","pages/useIt/images/male-condom-green.svg","pages/useIt/images/pep-green.svg","pages/useIt/images/pep-light-blue.svg","pages/useIt/images/prep-blue.svg","pages/useIt/images/shield-blue.svg","pages/useIt/images/shield-light-blue.svg","pages/useIt/images/treatment-orange.svg","actions/userIdActions.ts","actions/noteActions.ts","components/hiv_logout_button/LogoutButton.tsx","utils.ts","components/rainbow/Rainbow.tsx","actions/unlockProviderActions.ts","components/ncl/NclDialog/DialogWithOverlay.tsx","components/ncl/Markdown.tsx","components/ncl/NclNote/NclNote.tsx","components/hiv_note/Note.tsx","components/hiv_template/Template.tsx","components/ncl/NclPlainPageContent/PlainPageContent.tsx","components/hiv_page_content/PageContent.tsx","components/ncl/NclBulletList/IconBulletList.tsx","pages/getIt/GetIt.tsx","components/ncl/NclBulletList/BulletList.tsx","components/hiv_image_kanban/ImageKanban.tsx","pages/HIV/HIV.tsx","pages/options/Options.tsx","components/ncl/NclTabs/Tabs.tsx","components/hiv_tab/Tab.tsx","components/hiv_image_banner/ImageBanner.tsx","pages/prevent/Prevent.tsx","pages/sideEffects/SideEffects.tsx","pages/pregnancy/Pregnancy.tsx","pages/start/Start.tsx","pages/welcome/UcsfFooter.tsx","pages/welcome/Welcome.tsx","pages/why/Why.tsx","pages/menu/Menu.tsx","components/ncl/NclNav/NclNav.tsx","components/hiv_nav/Nav.tsx","actions/surveyActions.ts","pages/useIt/UseIt.tsx","pages/std/STD.tsx","pages/protect/Protect.tsx","pages/talkToProvider/TalkToProvider.tsx","pages/outro/Outro.tsx","pages/SecretDevPage/SecretDevPage.tsx","PageRoutes.tsx","reducers/noteReducer.ts","reducers/surveyReducer.ts","reducers/userIdReducer.ts","reducers/unlockProviderReducer.ts","reducers/index.ts","store.ts","App.tsx","serviceWorker.ts","index.tsx"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","userIdActionTypeEnums","noteActionTypeEnums","removeLexiconCookie","sessionStorage","removeItem","LogoutButton","onClick","className","href","arrayFromLexicon","lex","key","subkey","sub","subset","filter","k","endsWith","items","get","compact","recordEvent","eventName","page","window","location","pathname","slice","d","Date","origin","getItem","diff","valueOf","parse","toString","setItem","toISOString","Rainbow","unlockProviderActionTypeEnums","CloseButton","clickHandler","type","DialogWithOverlay","isModalOn","children","extraClass","overlayClassName","ariaHideApp","onRequestClose","isOpen","shouldCloseOnOverlayClick","showdownConverter","showdown","Converter","noHeaderId","Markdown","text","dangerouslySetInnerHTML","__html","makeHtml","Note","globalNotes","headerText","placeholderText","mobileText","tabletText","cancelText","saveText","saveGlobalNotes","useState","isDialogOn","setIsDialogOn","localNotes","setLocalNotes","hasLocalNotesChanged","setHasLocalNotesChanged","notesToDisplay","aria-hidden","value","onChange","target","placeholder","connecteNote","connect","notes","dispatch","updateNote","payload","lexicon","NclNote","NoteLexicon","Lexicon","texts","EditableNote","component","apiUpdateUrl","process","MaybeFooter","back","next","isShowingNotesButton","to","Template","ariaHidden","headerImage","isHidingNavs","headerImgPosition","useLocation","camelCase","currentPage","routes","isShowingNavs","src","alt","PlainPageContent","title","body","PageContent","IconBulletList","bulletImages","item","i","iconImages","PrEPimage","PEPimage","CondomsImage","hivTestingImage","TreatmentImage","GetIt","listMarkdowns","UseItLexicon","EditableGetIt","OptionalLogoutButton","BulletList","ImageKanban","imageName","appendixMarkdown","imageSrc","HIV","isJacksonvilleDialogOn","setIsJacksonvilleDialogOn","isWomenDialogOn","setIsWomenDialogOn","isMobile","setIsMobile","JacksonvilleDialogToggle","WomenDialogToggle","jacksonDialogList","womenDialogList","checkWindowWidth","innerWidth","useLayoutEffect","addEventListener","removeEventListener","usa_hiv","hiv_women_mobile","hiv_women","tabIndex","hiv_in_jackson","hiv_racial_breakdown","HivLexicon","EditableHiv","Options","OptionsLexicon","EditableOptions","NclTabs","itemKeys","selectedItem","TabletTabComponent","MobileTabComponent","ContentComponent","titleBarText","isShowingTitleBar","iconKey","itemKey","extraButtonClass","extraContentClass","PrEP","PrEPImage","PEP","PEPImage","condoms","condomsImage","hivTesting","treatment","treatmentImage","hivMethodNames","TabletTab","MobileTab","arrowImage","ImageBanner","text1","text2","colors","method","PreventPageImages","require","imageBannerColorConfig","hivMethods","bannerTexts","bannerColors","bannerImageSrc","Prevent","setselectedItem","icon","PreventLexicon","EditablePrevent","methods","SideEffects","bulletLists","SideEffectsHeaderImage","SideEffectsLexicon","EditableSideEffects","Pregnancy","dialogToggle","dialogList","PregnancyHeaderImage","PregnancyLexicon","EditablePregnancy","Start","StartHeaderImage","StartLexicon","EditableStart","UcsfFooter","userId","UcsfImage","connectedWelcome","len","length","startsWith","push","forEach","clearEvents","WelcomeLexicon","EditableWelcome","Why","bodyList","WhyHeaderImage","WhyLexicon","EditableWhy","linkKeys","NclNav","itemComponent","ItemComponent","NavItemComponent","idx","link","label","visited","check","arrow","visitedMenuLinks","visitMenuLink","itemsWithVisited","surveyActionTypeEnums","connectedMenu","isShowingLastLink","values","every","bool","menuItems","prevent","useIt","sideEffects","getIt","talkToProvider","en","MenuLexicon","EditableMenu","bulletImagesHash","str","UseIt","dialogLexicon","isDialogToggleNeeded","EditableUseIt","STD","stdHeaderImage","STDlexicon","EditableSTD","Protect","ProtectHeaderImage","ProtectLexicon","EditableProtect","connectedTalkToProvider","ProviderHeaderImage","TalkToProviderLexicon","EditableTalkToProvider","connectedOutro","updateUserId","saveUserLog","fetch","JSON","stringify","headers","then","res","json","catch","err","console","error","user_id","OutroLexicon","SecretDevPage","route","kebabCase","formattedRoute","hiv","menu","Menu","options","pregnancy","start","welcome","Welcome","why","std","protect","TalkToProvider","outro","Outro","secretDevPage","secretDeveloperPage","useEffect","exact","path","noteReducer","state","action","surveyKeys","initialState","experience","helpfulness","recommend","revisit","surveyReducer","answerSurvey","question","answer","userIdReducer","unlockProviderReducer","rootReducer","combineReducers","survey","store","createStore","App","Boolean","hostname","match","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.b1c82959.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/PrEP-OFF.a0a803f9.svg\";","module.exports = __webpack_public_path__ + \"static/media/PEP-OFF.081a5f32.svg\";","module.exports = __webpack_public_path__ + \"static/media/condoms-OFF.8e3ff136.svg\";","module.exports = __webpack_public_path__ + \"static/media/hivTesting-OFF.90527738.svg\";","module.exports = __webpack_public_path__ + \"static/media/treatment-OFF.ced2edbe.svg\";","module.exports = __webpack_public_path__ + \"static/media/main_nav_arrow_white.64cfacae.svg\";","module.exports = __webpack_public_path__ + \"static/media/usa_hiv.dce8d731.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hiv_in_women_mobile.8228b282.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hiv_in_women.81ea6268.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hiv_in_jackson.551104ba.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hiv_racial_breakdown.54ed2bd3.jpg\";","module.exports = __webpack_public_path__ + \"static/media/side-effects-header-image.75df8487.jpg\";","module.exports = __webpack_public_path__ + \"static/media/pregnancy-header-image.af162341.jpg\";","module.exports = __webpack_public_path__ + \"static/media/start-header-image.358badfb.jpg\";","module.exports = __webpack_public_path__ + \"static/media/ucsf.0610cc38.svg\";","module.exports = __webpack_public_path__ + \"static/media/why-header-image.051cfa43.jpg\";","module.exports = __webpack_public_path__ + \"static/media/main_nav_check_white.aec4d697.svg\";","module.exports = __webpack_public_path__ + \"static/media/std-header-image.27d44fde.jpg\";","module.exports = __webpack_public_path__ + \"static/media/protected-header-image.04e5314b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/provider-header-image.3958c6cb.jpg\";","var map = {\n\t\"./PEP-illustration.svg\": 329,\n\t\"./PrEP-illustration-original.svg\": 330,\n\t\"./PrEP-illustration.svg\": 331,\n\t\"./condoms-illustration.svg\": 332,\n\t\"./hivTesting-illustration.svg\": 333,\n\t\"./list-menu-arrow.svg\": 334,\n\t\"./treatment-illustration.svg\": 335\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 328;","module.exports = __webpack_public_path__ + \"static/media/PEP-illustration.40ff0027.svg\";","module.exports = __webpack_public_path__ + \"static/media/PrEP-illustration-original.961fe4c6.svg\";","module.exports = __webpack_public_path__ + \"static/media/PrEP-illustration.42905e57.svg\";","module.exports = __webpack_public_path__ + \"static/media/condoms-illustration.a142c602.svg\";","module.exports = __webpack_public_path__ + \"static/media/hivTesting-illustration.33aa063d.svg\";","module.exports = __webpack_public_path__ + \"static/media/list-menu-arrow.592cfb99.svg\";","module.exports = __webpack_public_path__ + \"static/media/treatment-illustration.5750c735.svg\";","var map = {\n\t\"./alarm-blue.svg\": 347,\n\t\"./calendar-light-blue.svg\": 348,\n\t\"./condoms-green.svg\": 349,\n\t\"./cross-blue.svg\": 350,\n\t\"./cross-light-blue.svg\": 351,\n\t\"./cross-light-orange.svg\": 352,\n\t\"./cross-orange.svg\": 353,\n\t\"./female-condom-green.svg\": 354,\n\t\"./hiv-testing-light-orange.svg\": 355,\n\t\"./key-blue.svg\": 356,\n\t\"./key-light-blue.svg\": 357,\n\t\"./lube-green.svg\": 358,\n\t\"./male-condom-green.svg\": 359,\n\t\"./pep-green.svg\": 360,\n\t\"./pep-light-blue.svg\": 361,\n\t\"./prep-blue.svg\": 362,\n\t\"./shield-blue.svg\": 363,\n\t\"./shield-light-blue.svg\": 364,\n\t\"./treatment-orange.svg\": 365\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 346;","module.exports = __webpack_public_path__ + \"static/media/alarm-blue.927fbf5a.svg\";","module.exports = __webpack_public_path__ + \"static/media/calendar-light-blue.5d9b1140.svg\";","module.exports = __webpack_public_path__ + \"static/media/condoms-green.42836b71.svg\";","module.exports = __webpack_public_path__ + \"static/media/cross-blue.f0d0dcb9.svg\";","module.exports = __webpack_public_path__ + \"static/media/cross-light-blue.fdc5f451.svg\";","module.exports = __webpack_public_path__ + \"static/media/cross-light-orange.90232137.svg\";","module.exports = __webpack_public_path__ + \"static/media/cross-orange.2a9cd21d.svg\";","module.exports = __webpack_public_path__ + \"static/media/female-condom-green.77ea56f1.svg\";","module.exports = __webpack_public_path__ + \"static/media/hiv-testing-light-orange.4ce10f49.svg\";","module.exports = __webpack_public_path__ + \"static/media/key-blue.1590cd6b.svg\";","module.exports = __webpack_public_path__ + \"static/media/key-light-blue.eb977a7d.svg\";","module.exports = __webpack_public_path__ + \"static/media/lube-green.e05e35e3.svg\";","module.exports = __webpack_public_path__ + \"static/media/male-condom-green.fd609a37.svg\";","module.exports = __webpack_public_path__ + \"static/media/pep-green.9062db2e.svg\";","module.exports = __webpack_public_path__ + \"static/media/pep-light-blue.5b55f82b.svg\";","module.exports = __webpack_public_path__ + \"static/media/prep-blue.f3d7b88e.svg\";","module.exports = __webpack_public_path__ + \"static/media/shield-blue.84fe9919.svg\";","module.exports = __webpack_public_path__ + \"static/media/shield-light-blue.7a65764c.svg\";","module.exports = __webpack_public_path__ + \"static/media/treatment-orange.e9416f60.svg\";","import { action, ActionType } from \"typesafe-actions\";\n\nexport enum userIdActionTypeEnums {\n updateUserId = \"UPDATE STUDY ID\",\n}\n\nconst userIdActions = {\n updateUserId: (id: string) => action(userIdActionTypeEnums.updateUserId, id),\n};\n\nexport type userIdActionType = ActionType\n\nexport default userIdActions;\n","import { action, ActionType } from \"typesafe-actions\";\n\n// use typescript enum rather than action constants\nexport enum noteActionTypeEnums {\n updateNote = \"UPDATE NOTE\",\n}\n\nconst noteActions = {\n updateNote: (note: string) => action(noteActionTypeEnums.updateNote, note),\n};\n\nexport type noteActionType = ActionType\n\nexport default noteActions;\n","import React from \"react\";\n\nconst removeLexiconCookie = () => { \n sessionStorage.removeItem('lexiconServerToken');\n }\n\nconst LogoutButton: React.FC = () => (\n
\n Logout\n
\n);\n\nexport default LogoutButton;","import compact from \"lodash/compact\";\nimport { Lexicon } from '@nitidbit/lexicon';\n\nexport const arrayFromLexicon = ( lex: Lexicon, key: string, subkey?: string ): string[] => {\n const sub = lex.subset(key);\n\n if (!sub) { return []; }\n\n let keys = sub.keys();\n if (subkey) keys = keys.filter(k => k.endsWith(subkey));\n const items = keys.map( (k) => sub.get(k) );\n return compact(items);\n}\n\nexport const isLexiconEditorUnlocked = () => {\n return document.cookie.split(';').filter(item => (item.trim().indexOf('lexicon=') === 0)).length > 0;\n};\n\n// function to record event timestamps for user analytics\nexport const NAMESPACE = 'log';\n\nexport const recordEvent = (eventName: string) => {\n let page = window.location.pathname.slice(1);\n let key = `${NAMESPACE}.${page}.${eventName}`;\n let d = new Date();\n let origin = sessionStorage.getItem(key);\n if (origin) {\n let diff = d.valueOf() - Date.parse(origin);\n key += `+${diff.toString()}`;\n }\n\n if (!sessionStorage.getItem(key)) {\n sessionStorage.setItem(key, d.toISOString());\n }\n};\n\nexport const clearEvents = () => {\n const len = sessionStorage.length;\n let keys = [];\n for (let i = 0; i < len; i += 1) {\n let key = sessionStorage.key(i);\n if (key && key.startsWith(`${NAMESPACE}.`)) { keys.push(key); }\n }\n keys.forEach((k) => {\n sessionStorage.removeItem(k);\n });\n};","import React from \"react\";\nimport \"./Rainbow.scss\";\n\nconst Rainbow: React.FC = () => (\n
\n
\n
\n
\n
\n
\n
\n
\n);\n\nexport default Rainbow;\n","import { action, ActionType } from \"typesafe-actions\";\n\n// use typescript enum rather than action constants\nexport enum unlockProviderActionTypeEnums {\n visitMenuLink = \"VISIT MENU LINK\",\n}\n\nconst unlockProviderActions = {\n visitMenuLink: (link: string) => action(unlockProviderActionTypeEnums.visitMenuLink, link),\n};\n\nexport type unlockProviderActionType = ActionType\n\nexport default unlockProviderActions;\n","import React from 'react';\nimport './DialogWithOverlay.scss';\nimport Modal from 'react-modal';\n\ninterface CloseButtonInterface { \n clickHandler: () => void,\n}\n\n// Modal.setAppElement('#root');\n\nexport const CloseButton: React.FC = ({ clickHandler }) => (\n \n);\n\ninterface DialogWithOverlayInterface {\n clickHandler: () => void,\n isModalOn: boolean,\n extraClass?: string,\n}\n\nconst DialogWithOverlay: React.FC = ({ clickHandler, isModalOn, children, extraClass = '' }) => (\n isModalOn ? ( (document.querySelector('#root') as HTMLElement)}\n shouldCloseOnOverlayClick\n >\n { children }\n \n ) : null\n);\n\n\nexport default DialogWithOverlay;\n","import React from 'react';\nimport showdown from 'showdown';\n\ninterface MarkdownInterface {\n text: string,\n extraClass?: string\n}\n\nconst showdownConverter = new showdown.Converter({ noHeaderId: true });\nconst Markdown: React.FC = ({ text, extraClass }) => (\n \n);\n\nexport default Markdown;","import React, { useState } from 'react';\nimport DialogWithOverlay from '../NclDialog/DialogWithOverlay';\nimport Markdown from '../Markdown';\n\ninterface NoteInterface { \n globalNotes: string,\n placeholderText?: string,\n headerText?: string,\n mobileText?: string,\n tabletText?: string,\n cancelText?: string,\n saveText?: string,\n saveGlobalNotes: (localNote: string) => any\n}\n\nconst Note: React.FC = ({\n globalNotes,\n headerText,\n placeholderText = '',\n mobileText,\n tabletText,\n cancelText,\n saveText = 'save',\n saveGlobalNotes,\n}) => {\n\n const [isDialogOn, setIsDialogOn] = useState(false);\n const [localNotes, setLocalNotes] = useState('');\n const [hasLocalNotesChanged, setHasLocalNotesChanged] = useState(false);\n \n const handleCancel = () => {\n setLocalNotes('');\n setIsDialogOn(false);\n };\n const handleSave = () => {\n saveGlobalNotes(localNotes);\n setIsDialogOn(false);\n }\n\n const notesToDisplay = hasLocalNotesChanged \n ? localNotes\n : (localNotes || globalNotes)\n\n return (\n <>\n \n ) :
\n }\n \n
\n \n \n );\n}\n\nexport default Note;","import React from 'react';\nimport { connect } from 'react-redux';\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport { Dispatch } from \"redux\";\nimport { noteActionTypeEnums, noteActionType } from '../../actions/noteActions';\nimport { rootReducerState } from '../../reducers';\nimport NclNote from '../ncl/NclNote/NclNote';\nimport texts from './NoteStrings.json';\nimport './Note.scss';\n\ninterface NoteInterface {\n notes: string,\n saveGlobalNotes: (notes: string) => object,\n lexicon: Lexicon\n}\n\nconst Note: React.FC = ({ notes, saveGlobalNotes, lexicon }) => (\n \n)\n\nconst mapStateToProps = ({ notes }: rootReducerState) => ({ notes });\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\n saveGlobalNotes: (notes: string) => dispatch({ type: noteActionTypeEnums.updateNote, payload: notes }),\n});\n\nconst connecteNote = connect(mapStateToProps, mapDispatchToProps)(Note);\n\nconst NoteLexicon = new Lexicon(texts, 'en', 'client/src/components/hiv_note/NoteStrings.json');\n\nconst EditableNote = () => (\n \n);\n\nexport default EditableNote;\n\n","import camelCase from \"lodash/camelCase\";\nimport React from \"react\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport Rainbow from \"../rainbow/Rainbow\";\nimport { routes } from \"../../PageRoutes\";\nimport { recordEvent } from \"../../utils\";\nimport \"./Template.scss\";\nimport Note from \"../hiv_note/Note\";\n\ninterface TemplateInterface {\n page?: string,\n ariaHidden? : boolean,\n isShowingNotesButton?: boolean\n headerImage?: string,\n isHidingNavs?: boolean,\n headerImgPosition?: string\n}\n\ninterface MaybeFooterInterface {\n back?: string,\n next?: string,\n isShowingNotesButton: boolean\n}\n\nconst Template: React.FC = ({ \n children,\n page,\n ariaHidden = false,\n headerImage = null,\n isShowingNotesButton = false,\n isHidingNavs = false,\n headerImgPosition = 'center'\n}) => {\n const location = useLocation();\n const key = camelCase(location.pathname);\n const currentPage = routes[key];\n const back = (currentPage && currentPage.back) || \"\";\n const next = (currentPage && currentPage.next) || \"\";\n const isShowingNavs = currentPage && !isHidingNavs;\n\n return (\n <>\n \n { headerImage && \"\" }\n
\n { children }\n { isShowingNavs && }\n
\n \n );\n};\n\nexport const MaybeFooter: React.FC = ({ back, next, isShowingNotesButton }) => (\n back || next \n ? (\n
\n { back ? recordEvent(\"BACK\")}>« back :
}\n { isShowingNotesButton && }\n { next ? recordEvent(\"CONTINUE\")}>continue » :
}\n
\n ) : null\n);\n\nexport default Template;\n","import React from \"react\";\nimport Markdown from \"../Markdown\";\n\ninterface PlainPageContentInterface {\n title: string | null,\n body?: string | null,\n \n}\n\nconst PlainPageContent: React.FC = ({ title, body = '' }) => (\n <>\n { title &&

{title}

}\n { body && }\n \n);\n\nexport default PlainPageContent;\n","import PageContent from \"../ncl/NclPlainPageContent/PlainPageContent\";\nimport './PageContent.scss';\n\nexport default PageContent;\n","import React from 'react';\nimport './IconBulletList.scss';\nimport Markdown from '../Markdown';\nimport { BulletListInterface } from './util';\n\nconst IconBulletList: React.FC = ({ items, bulletImages = [] }) => (\n
    \n { \n items.map((item: string, i: number) => (\n
  • \n { bulletImages[i] && \"\" }\n \n
  • \n ))\n }\n
\n);\n\n\nexport default IconBulletList;\n","import React from \"react\";\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport texts from './GetItStrings.json';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport { arrayFromLexicon } from \"../../utils\";\nimport Template from \"../../components/hiv_template/Template\";\nimport PageContent from \"../../components/hiv_page_content/PageContent\";\nimport IconBulletList from \"../../components/ncl/NclBulletList/IconBulletList\";\nimport './GetIt.scss';\n\nimport PrEPimage from '../../shared_images/colored_icons/PrEP-OFF.svg';\nimport PEPimage from '../../shared_images/colored_icons/PEP-OFF.svg';\nimport CondomsImage from '../../shared_images/colored_icons/condoms-OFF.svg';\nimport hivTestingImage from '../../shared_images/colored_icons/hivTesting-OFF.svg';\nimport TreatmentImage from '../../shared_images/colored_icons/treatment-OFF.svg';\n\ninterface GetItInterface { lexicon: Lexicon }\n\nconst iconImages = [\n PrEPimage,\n PEPimage,\n CondomsImage,\n hivTestingImage,\n TreatmentImage,\n];\n\nconst GetIt: React.FC = ({ lexicon }) => {\n const listMarkdowns = arrayFromLexicon(lexicon, 'list');\n\n return (\n \n );\n};\n\nconst UseItLexicon = new Lexicon(texts, 'en', 'client/src/pages/getIt/GetItStrings.json');\n\nconst EditableGetIt = () => (\n \n);\n\nexport default EditableGetIt;\n","import React from 'react';\nimport Markdown from '../Markdown';\nimport './BulletList.scss';\nimport { BulletListInterface } from './util';\n\nconst BulletList: React.FC = ({ items }) => (\n
    \n { \n items.map((item: string) => (\n
  • \n \n
  • \n ))\n }\n
\n);\n\nexport default BulletList;\n","import React from 'react';\nimport Markdown from '../ncl/Markdown';\nimport './ImageKanban.scss';\n\ninterface ImageKanbanInterface { \n imageName: string,\n headerText: string,\n appendixMarkdown: string,\n imageSrc: any\n}\n\nconst ImageKanban:React.FC = ({ headerText, imageName, appendixMarkdown, imageSrc }) => (\n
\n
\n

{headerText}

\n
\n {headerText}\n \n
\n)\n\nexport default ImageKanban;\n","import React, { useState, useLayoutEffect } from \"react\";\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport { arrayFromLexicon } from \"../../utils\";\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport texts from './HivStrings.json';\nimport Template from \"../../components/hiv_template/Template\";\nimport PageContent from \"../../components/hiv_page_content/PageContent\";\nimport DialogWithOverlay from \"../../components/ncl/NclDialog/DialogWithOverlay\";\nimport BulletList from \"../../components/ncl/NclBulletList/BulletList\";\nimport Markdown from \"../../components/ncl/Markdown\";\nimport ImageKanban from \"../../components/hiv_image_kanban/ImageKanban\";\nimport \"./HIV.scss\";\n\nimport usa_hiv from './usa_hiv.jpg';\nimport hiv_women_mobile from './hiv_in_women_mobile.jpg';\nimport hiv_women from './hiv_in_women.jpg';\nimport hiv_in_jackson from './hiv_in_jackson.jpg';\nimport hiv_racial_breakdown from './hiv_racial_breakdown.jpg';\n\ninterface HivInterface { \n lexicon: Lexicon\n}\n\nconst HIV: React.FC = ({ lexicon }) => {\n const [isJacksonvilleDialogOn, setIsJacksonvilleDialogOn] = useState(false);\n const [isWomenDialogOn, setIsWomenDialogOn] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n\n const JacksonvilleDialogToggle = (): void => {\n if (isJacksonvilleDialogOn === true) setIsJacksonvilleDialogOn(false);\n else setIsJacksonvilleDialogOn(true);\n }\n\n const WomenDialogToggle = (): void => {\n if (isWomenDialogOn === true) setIsWomenDialogOn(false);\n else setIsWomenDialogOn(true);\n }\n\n const jacksonDialogList = arrayFromLexicon(lexicon, 'jackson.list');\n const womenDialogList = arrayFromLexicon(lexicon, 'women.list');\n\n const checkWindowWidth = (): void => { setIsMobile(window.innerWidth < 680) }\n\n useLayoutEffect(() => {\n window.addEventListener('resize', checkWindowWidth);\n\n return () => { window.removeEventListener('resize', checkWindowWidth) }\n }, [])\n\n return (\n <>\n \n \n \n \n {lexicon.get('jackson.button')}\n \n \n \n \n {lexicon.get('women.button')}\n \n \n {\n isJacksonvilleDialogOn && (\n \n \n
\n \n \n
\n \n )\n }\n {\n isWomenDialogOn && (\n \n \n
\n \n \n
\n \n )\n }\n \n );\n};\n\nconst HivLexicon = new Lexicon(texts, 'en', 'client/src/pages/HIV/HivStrings.json');\n\nconst EditableHiv = () => (\n \n);\n\nexport default EditableHiv;\n","import React from \"react\";\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport texts from './OptionsStrings.json';\nimport Template from \"../../components/hiv_template/Template\";\nimport PageContent from \"../../components/hiv_page_content/PageContent\";\nimport IconBulletList from \"../../components/ncl/NclBulletList/IconBulletList\";\nimport { arrayFromLexicon } from \"../../utils\";\nimport './Options.scss';\n\nimport PrEPimage from '../../shared_images/colored_icons/PrEP-OFF.svg';\nimport PEPimage from '../../shared_images/colored_icons/PEP-OFF.svg';\nimport CondomsImage from '../../shared_images/colored_icons/condoms-OFF.svg';\nimport hivTestingImage from '../../shared_images/colored_icons/hivTesting-OFF.svg';\nimport TreatmentImage from '../../shared_images/colored_icons/treatment-OFF.svg';\n\nconst iconImages = [\n PrEPimage,\n PEPimage,\n CondomsImage,\n hivTestingImage,\n TreatmentImage,\n];\n\ninterface OptionsInterface { lexicon: Lexicon }\n\nconst Options: React.FC = ({ lexicon }) => {\n const listMarkdowns = arrayFromLexicon(lexicon, 'list')\n\n return (\n \n );\n};\n\nconst OptionsLexicon = new Lexicon(texts, 'en', 'client/src/pages/options/OptionsStrings.json');\n\nconst EditableOptions = () => (\n \n);\n\nexport default EditableOptions;\n","import React from \"react\";\nimport './Tabs.scss'\n\ninterface TabsInterface {\n itemKeys: string[],\n TabletTabComponent: React.FC<{ itemKey: string }>,\n MobileTabComponent: React.FC<{ itemKey: string }>,\n ContentComponent: React.FC<{ itemKey: string }>,\n selectedItem: string | null,\n clickHandler: (icon: string) => void,\n isShowingTitleBar?: boolean,\n titleBarText?: string\n}\n\nconst NclTabs: React.FC = ({\n itemKeys,\n selectedItem,\n clickHandler,\n TabletTabComponent,\n MobileTabComponent,\n ContentComponent,\n titleBarText ,\n isShowingTitleBar = false\n}) => {\n return (\n <>\n
\n
\n {\n itemKeys.map((iconKey: string) => {\n const extraClass = selectedItem === iconKey ? 'selected' : '';\n\n return (\n { clickHandler(iconKey); }}\n >\n \n \n );\n })\n }\n
\n { isShowingTitleBar &&
{titleBarText}
}\n \n { selectedItem && }\n
\n\n
\n
\n {\n itemKeys.map((iconKey: string) => {\n const extraButtonClass = selectedItem === iconKey ? 'selected' : '';\n const extraContentClass = selectedItem === iconKey ? 'slide-down' : 'slide-up'\n\n // this is purposely made not a button because we don't want screen reader users to interact with it\n return (\n
\n { clickHandler(iconKey); }}\n >\n \n \n
\n \n
\n
\n
\n );\n })\n }\n
\n
\n \n );\n}\n\nexport default NclTabs;\n","import React from \"react\";\n\nimport condomsImage from '../../shared_images/colored_icons/condoms-OFF.svg';\nimport hivTestingImage from '../../shared_images/colored_icons/hivTesting-OFF.svg';\nimport treatmentImage from '../../shared_images/colored_icons/treatment-OFF.svg';\nimport PrEPImage from '../../shared_images/colored_icons/PrEP-OFF.svg';\nimport PEPImage from '../../shared_images/colored_icons/PEP-OFF.svg';\nimport arrowImage from '../hiv_nav/main_nav_arrow_white.svg';\n\ninterface TabInterface { itemKey: string };\n\nconst iconImages: { [index: string]: string } = {\n PrEP: PrEPImage,\n PEP: PEPImage,\n condoms: condomsImage,\n hivTesting: hivTestingImage,\n treatment: treatmentImage,\n}\n\nexport const hivMethodNames: { [index: string]: string } = {\n PrEP: 'PrEP',\n PEP: 'PEP',\n condoms: 'Condoms',\n hivTesting: 'HIV Testing',\n treatment: 'Treament as Prevention'\n};\n\nexport const TabletTab: React.FC = ({ itemKey }) => {itemKey};\n\nexport const MobileTab: React.FC = ({ itemKey }) => (\n <>\n {hivMethodNames[itemKey]}\n

{hivMethodNames[itemKey]}

\n \"\"\n \n)","import React from 'react';\nimport './ImageBanner.scss';\n\ntype color = 'orange' | 'blue' | 'green';\nexport type ColorsType = color[];\n\ninterface ImageBannerInterface {\n imageSrc: any,\n method: string,\n text1: string,\n text2: string,\n colors: ColorsType\n}\n\n\nconst ImageBanner:React.FC = ({ imageSrc, text1, text2, colors, method }) => (\n
\n {`${text1}\n
\n {text1}\n { ' ' }\n {text2}\n
\n
\n)\n\nexport default ImageBanner;\n","import React, { useState } from \"react\";\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport { arrayFromLexicon, recordEvent } from \"../../utils\";\nimport texts from \"./PreventStrings.json\";\nimport './Prevent.scss';\nimport Template from \"../../components/hiv_template/Template\";\nimport NclTabs from \"../../components/ncl/NclTabs/Tabs\";\nimport BulletList from \"../../components/ncl/NclBulletList/BulletList\";\nimport { TabletTab, MobileTab } from '../../components/hiv_tab/Tab';\nimport PageContent from \"../../components/hiv_page_content/PageContent\";\nimport { hivMethodNames } from '../../components/hiv_tab/Tab';\nimport ImageBanner, { ColorsType } from \"../../components/hiv_image_banner/ImageBanner\";\nconst PreventPageImages = require.context('./images', true)\n\ntype imageBannerColorConfig = { [index: string]: ColorsType }\ninterface PreventInterface { lexicon: Lexicon }\ninterface TabInterface {\n itemKey: string,\n items: string[],\n bannerTexts: string[],\n bannerColors: ColorsType,\n bannerImageSrc: any\n};\n\nconst imageBannerColorConfig: imageBannerColorConfig = {\n 'PrEP': ['blue', 'orange'],\n 'PEP': ['blue', 'green'],\n 'condoms': ['blue', 'orange'],\n 'hivTesting': ['blue', 'orange'],\n 'treatment': ['blue', 'orange'],\n}\n\nconst hivMethods = ['PrEP', 'PEP', 'condoms', 'hivTesting', 'treatment'];\n\nconst ContentComponent: React.FC = ({ itemKey, items, bannerTexts, bannerColors, bannerImageSrc }) => (\n <>\n
\n \n {/* {itemKey} */}\n \n
\n \n);\n\nconst Prevent: React.FC = ({ lexicon }) => {\n const [selectedItem, setselectedItem] = useState(null);\n\n const iconToggle = (icon: string): void => {\n recordEvent(`TAB-${icon}`);\n if (selectedItem === icon) setselectedItem(null);\n else setselectedItem(icon);\n }\n\n const titleBarText = selectedItem ? hivMethodNames[selectedItem] : lexicon.get('select_one');\n \n return (\n \n );\n};\n\nconst PreventLexicon = new Lexicon(texts, 'en', 'client/src/pages/prevent/PreventStrings.json');\n\nconst EditablePrevent = () => (\n \n);\n\nexport default EditablePrevent;\n","import React from \"react\";\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport { arrayFromLexicon } from \"../../utils\";\nimport Template from \"../../components/hiv_template/Template\";\nimport texts from './SideEffectsStrings.json';\nimport PageContent from \"../../components/hiv_page_content/PageContent\";\nimport BulletList from \"../../components/ncl/NclBulletList/BulletList\";\nimport './SideEffects.scss';\n\nimport SideEffectsHeaderImage from './side-effects-header-image.jpg';\nimport PrEPimage from '../../shared_images/colored_icons/PrEP-OFF.svg';\nimport PEPimage from '../../shared_images/colored_icons/PEP-OFF.svg';\n\nconst methods = ['PrEP', 'PEP'];\nconst bulletImages = [PrEPimage, PEPimage];\n\ninterface SideEffectsInterface { lexicon: Lexicon }\n\nconst SideEffects: React.FC = ({ lexicon }) => {\n const bulletLists = [\n arrayFromLexicon(lexicon, 'PrEP'),\n arrayFromLexicon(lexicon, 'PEP'),\n ];\n \n return (\n \n \n
    \n { \n methods.map((item: string, i: number) => (\n
  • \n { bulletImages[i] && \"\" }\n
    \n

    {item}

    \n \n
    \n
  • \n ))\n }\n
\n \n );\n};\n\nconst SideEffectsLexicon = new Lexicon(texts, 'en', 'client/src/pages/sideEffects/SideEffectsStrings.json');\n\nconst EditableSideEffects = () => (\n \n);\n\nexport default EditableSideEffects;\n","import React, { useState } from 'react';\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport { arrayFromLexicon } from \"../../utils\";\nimport texts from './PregnancyStrings.json';\nimport Template from \"../../components/hiv_template/Template\";\nimport PageContent from \"../../components/hiv_page_content/PageContent\";\nimport DialogWithOverlay from \"../../components/ncl/NclDialog/DialogWithOverlay\";\nimport BulletList from \"../../components/ncl/NclBulletList/BulletList\";\nimport PregnancyHeaderImage from './pregnancy-header-image.jpg';\nimport './Pregnancy.scss';\n\ninterface PregnancyInterface { lexicon: Lexicon }\n\nconst Pregnancy: React.FC = ({ lexicon }) => {\n const [isDialogOn, setIsDialogOn] = useState(false);\n\n const dialogToggle = (): void => {\n if (isDialogOn === true) setIsDialogOn(false);\n else setIsDialogOn(true);\n }\n\n const dialogList = arrayFromLexicon(lexicon, 'dialog.list');\n\n return (\n <>\n \n \n \n {lexicon.get('dialog.header')}\n \n \n\n {\n isDialogOn && (\n \n

{lexicon.get('dialog.header')}

\n
\n \n
\n \n )\n }\n \n );\n};\n\nconst PregnancyLexicon = new Lexicon(texts, 'en', 'client/src/pages/pregnancy/PregnancyStrings.json');\n\nconst EditablePregnancy= () => (\n \n);\n\nexport default EditablePregnancy;\n","import React, { useState } from \"react\";\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport texts from \"./StartStrings.json\";\nimport Template from \"../../components/hiv_template/Template\";\nimport PageContent from \"../../components/hiv_page_content/PageContent\";\nimport DialogWithOverlay from \"../../components/ncl/NclDialog/DialogWithOverlay\";\nimport Markdown from \"../../components/ncl/Markdown\";\nimport StartHeaderImage from './start-header-image.jpg';\nimport './Start.scss';\n\ninterface StartInterface { lexicon: Lexicon };\n\nconst Start: React.FC = ({ lexicon }) => {\n const [isDialogOn, setIsDialogOn] = useState(true);\n\n return (\n <>\n \n \n \n\n {\n isDialogOn && (\n { setIsDialogOn(false) }}\n isModalOn={isDialogOn}\n extraClass=\"start-dialog\"\n >\n
\n \n
\n \n )\n }\n \n )\n};\n\nconst StartLexicon = new Lexicon(texts, 'en', 'client/src/pages/start/StartStrings.json');\n\nconst EditableStart = () => (\n \n);\n\nexport default EditableStart;\n","import React from 'react';\nimport UcsfImage from './ucsf.svg';\nimport './UcsfFooter.scss';\n\ntype UcsfFooterType = { userId: string }\n\nconst UcsfFooter: React.FC = ({ userId }) => (\n
\n \"University\n {\n userId &&
ID: {userId}
\n }\n
\n);\n\nexport default UcsfFooter;\n","import React from \"react\";\nimport { connect } from 'react-redux';\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport { Link } from 'react-router-dom';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport { rootReducerState } from '../../reducers';\nimport Template from \"../../components/hiv_template/Template\";\nimport UcsfFooter from \"./UcsfFooter\";\nimport { clearEvents, recordEvent } from \"../../utils\";\nimport texts from './WelcomeStrings.json';\nimport './Welcome.scss';\n\ninterface WelcomeInterface { \n userId: string,\n lexicon: Lexicon,\n}\n\nconst Welcome: React.FC = ({ userId, lexicon }) => {\n clearEvents();\n\n return (\n <>\n \n \n \n );\n};\n\nconst mapStateToProps = ({ userId }: rootReducerState) => ({ userId });\n\nconst connectedWelcome = connect(mapStateToProps)(Welcome);\n\nconst WelcomeLexicon = new Lexicon(texts, 'en', 'client/src/pages/welcome/WelcomeStrings.json');\n\nconst EditableWelcome = () => (\n \n);\n\nexport default EditableWelcome;\n","import React, { useState } from \"react\";\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport { arrayFromLexicon } from \"../../utils\";\nimport texts from './WhyStrings.json';\nimport Template from \"../../components/hiv_template/Template\";\nimport PageContent from \"../../components/hiv_page_content/PageContent\";\nimport DialogWithOverlay from \"../../components/ncl/NclDialog/DialogWithOverlay\";\nimport BulletList from \"../../components/ncl/NclBulletList/BulletList\";\nimport WhyHeaderImage from './why-header-image.jpg';\nimport './Why.scss';\n\ninterface WhyInterface { lexicon: Lexicon }\n\nconst Why: React.FC = ({ lexicon }) => {\n const [isDialogOn, setIsDialogOn] = useState(false);\n\n const dialogToggle = (): void => {\n if (isDialogOn === true) setIsDialogOn(false);\n else setIsDialogOn(true);\n }\n\n const bodyList = arrayFromLexicon(lexicon, 'list');\n const dialogList = arrayFromLexicon(lexicon, 'dialog.list')\n\n return (\n <>\n \n \n \n \n \n\n {\n isDialogOn && (\n \n \n
\n \n
\n \n )\n }\n \n );\n};\n\nconst WhyLexicon = new Lexicon(texts, 'en', 'client/src/pages/why/WhyStrings.json');\n\nconst EditableWhy = () => (\n \n);\n\nexport default EditableWhy;\n","import React from \"react\";\nimport { connect } from 'react-redux';\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport { rootReducerState } from '../../reducers';\nimport Nav from \"../../components/hiv_nav/Nav\";\nimport Template from \"../../components/hiv_template/Template\";\nimport \"./Menu.scss\";\nimport texts from \"./MenuStrings.json\";\nimport Note from \"../../components/hiv_note/Note\";\n\nexport enum linkKeys {\n prevent = '/prevent',\n useIt = '/use-it',\n sideEffects = '/side-effects',\n getIt = '/get-it',\n talkToProvider = '/talk-to-provider'\n}\n\ninterface MenuInterface { \n isShowingLastLink: boolean,\n lexicon: Lexicon,\n}\n\nconst Menu: React.FC = ({ lexicon, isShowingLastLink }) => {\n let menuItems = [\n {link: linkKeys.prevent, label: lexicon.get('prevent')},\n {link: linkKeys.useIt, label: lexicon.get('useIt')},\n {link: linkKeys.sideEffects, label: lexicon.get('sideEffects')},\n {link: linkKeys.getIt, label: lexicon.get('getIt')},\n ];\n\n if (isShowingLastLink) menuItems = [ ...menuItems, {link: linkKeys.talkToProvider, label: texts.en.talkToProvider}]\n\n return (\n \n );\n};\n\nconst mapStateToProps = ({ visitedMenuLinks }: rootReducerState) => {\n return ({ \n isShowingLastLink: Object.values(visitedMenuLinks).every((bool: boolean) => bool)\n })\n};\n\nconst connectedMenu = connect(mapStateToProps)(Menu);\n\nconst MenuLexicon = new Lexicon(texts, 'en', 'client/src/pages/menu/MenuStrings.json');\n\nconst EditableMenu = () => (\n \n);\n\nexport default EditableMenu;\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport \"./NclNav.scss\";\n\nexport interface NavItem {\n link: string;\n label: string | null;\n visited?: boolean;\n clickHandler?: () => void;\n}\n\nexport const NclNav: React.FC<{itemComponent?: React.FC, items: NavItem[]}> = ({ itemComponent, items }) => {\n const ItemComponent = itemComponent || NavItemComponent;\n return (\n
    \n { items.map( (item, idx) =>\n \n \n ,\n ) }\n
\n );\n};\n\nconst NavItemComponent: React.FC = ({ label, visited }) => (\n
  • \n {label}\n
  • \n);","import React from \"react\";\nimport { connect } from 'react-redux';\nimport { Dispatch } from \"redux\";\nimport { rootReducerState } from '../../reducers';\nimport { unlockProviderActionType, unlockProviderActionTypeEnums } from '../../actions/unlockProviderActions';\nimport { NclNav, NavItem } from \"../ncl/NclNav/NclNav\";\nimport { recordEvent } from \"../../utils\";\nimport arrow from \"./main_nav_arrow_white.svg\";\nimport check from \"./main_nav_check_white.svg\";\nimport \"./Nav.scss\";\n\ninterface NavInterface {\n items: NavItem[],\n visitMenuLink: (link: string) => object,\n visitedMenuLinks: { [index: string]: boolean }\n}\n\nconst Nav: React.FC = ({ items, visitMenuLink, visitedMenuLinks }) => {\n const itemsWithVisited = items.map(item => ({\n ...item,\n visited: visitedMenuLinks[item.link],\n clickHandler: () => { recordEvent(`VISIT-${item.link.slice(1)}`); visitMenuLink(item.link); }\n }))\n\n return (\n \n )\n};\n\nconst NavItemComponent: React.FC = ({ label, visited }) => (\n
  • \n {label}\n {visited\n
  • \n);\n\nconst mapStateToProps = ({ visitedMenuLinks }: rootReducerState) => ({ visitedMenuLinks });\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\n visitMenuLink: (link: string) => dispatch({ type: unlockProviderActionTypeEnums.visitMenuLink, payload: link }),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Nav);\n","import { action, ActionType } from \"typesafe-actions\";\n\n// use typescript enum rather than action constants\nexport enum surveyActionTypeEnums {\n answerSurvey = \"ANSWER SURVEY\",\n}\n\nconst surveyActions = {\n answerSurvey: (question: string, answer: string) => action(surveyActionTypeEnums.answerSurvey, { question, answer }),\n};\n\nexport type surveyActionType = ActionType\n\nexport default surveyActions;\n","import React, { useState } from \"react\";\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport texts from \"./UseItStrings.json\";\nimport Template from \"../../components/hiv_template/Template\";\nimport NclTabs from \"../../components/ncl/NclTabs/Tabs\";\nimport Markdown from \"../../components/ncl/Markdown\";\nimport { TabletTab, MobileTab } from '../../components/hiv_tab/Tab';\nimport IconBulletList from \"../../components/ncl/NclBulletList/IconBulletList\";\nimport DialogWithOverlay from \"../../components/ncl/NclDialog/DialogWithOverlay\";\nimport BulletList from \"../../components/ncl/NclBulletList/BulletList\";\nimport { arrayFromLexicon, recordEvent } from \"../../utils\";\nimport { hivMethodNames } from '../../components/hiv_tab/Tab';\nimport './UseIt.scss';\n\nconst bulletImages = require.context('./images', true);\n\ninterface UseItInterface { lexicon: Lexicon }\ninterface TabInterface { \n itemKey: string,\n items: string[],\n};\n\ntype itemWithDialog = 'PEP' | 'PrEP';\n\nconst hivMethods = ['PrEP', 'PEP', 'condoms', 'hivTesting', 'treatment'];\n\nconst bulletImagesHash: { [index: string]: string[] } = ({\n PrEP: ['prep-blue', 'alarm-blue', 'cross-blue', 'shield-blue', 'key-blue'].map(str => bulletImages(`./${str}.svg`)),\n PEP: ['pep-light-blue', 'calendar-light-blue', 'cross-light-blue', 'shield-light-blue', 'key-light-blue'].map(str => bulletImages(`./${str}.svg`)),\n condoms: ['condoms-green', 'male-condom-green', 'female-condom-green', 'lube-green', 'pep-green'].map(str => bulletImages(`./${str}.svg`)),\n hivTesting: ['hiv-testing-light-orange', 'cross-light-orange'].map(str => bulletImages(`./${str}.svg`)),\n treatment: ['treatment-orange', 'cross-orange', 'cross-orange'].map(str => bulletImages(`./${str}.svg`))\n});\n\nconst ContentComponent: React.FC = ({ itemKey, children, items }) => (\n <>\n
    \n \n { children }\n
    \n \n);\n\nconst UseIt: React.FC = ({ lexicon }) => {\n const [selectedItem, setselectedItem] = useState(null);\n const [isDialogOn, setIsDialogOn] = useState(false);\n\n const dialogToggle = (): void => {\n if (isDialogOn === true) setIsDialogOn(false);\n else setIsDialogOn(true);\n }\n\n const iconToggle = (icon: string): void => {\n recordEvent(`TAB-${icon}`);\n if (selectedItem === icon) setselectedItem(null);\n else setselectedItem(icon);\n }\n\n const dialogLexicon = (lexicon.subset('dialog') as Lexicon);\n\n const titleBarText = selectedItem ? hivMethodNames[selectedItem] : lexicon.get('select_one');\n const isDialogToggleNeeded = selectedItem === 'PrEP' || selectedItem === 'PEP';\n\n return (\n <>\n \n

    {lexicon.get('title')}

    \n \n (\n \n { \n isDialogToggleNeeded && (\n \n { dialogLexicon.get(`${(selectedItem as itemWithDialog)}.header`) }\n \n )\n }\n \n )}\n isShowingTitleBar\n titleBarText={titleBarText}\n />\n \n\n {\n isDialogToggleNeeded && (\n \n

    {dialogLexicon.get(`${(selectedItem as itemWithDialog)}.header`)}

    \n
    \n

    {dialogLexicon.get(`${(selectedItem as itemWithDialog)}.body`)}

    \n { selectedItem && }\n
    \n \n )\n }\n \n );\n};\n\nconst UseItLexicon = new Lexicon(texts, 'en', 'client/src/pages/useIt/UseItStrings.json');\n\nconst EditableUseIt = () => (\n \n);\n\nexport default EditableUseIt;\n","import React from \"react\";\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport { arrayFromLexicon } from \"../../utils\";\nimport texts from './STDstrings.json';\nimport Template from \"../../components/hiv_template/Template\";\nimport PageContent from \"../../components/hiv_page_content/PageContent\";\nimport BulletList from \"../../components/ncl/NclBulletList/BulletList\";\nimport Markdown from \"../../components/ncl/Markdown\";\nimport './STD.scss';\n\nimport stdHeaderImage from './std-header-image.jpg';\n\ninterface STDInterface { lexicon: Lexicon }\n\nconst STD: React.FC = ({ lexicon }) => {\n const bodyList = arrayFromLexicon(lexicon, 'list');\n\n return (\n \n \n \n \n \n )\n};\n\nconst STDlexicon = new Lexicon(texts, 'en', 'client/src/pages/std/STDstrings.json');\n\nconst EditableSTD = () => (\n \n);\n\nexport default EditableSTD;\n","import React from \"react\";\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport { arrayFromLexicon } from \"../../utils\";\nimport texts from './ProtectStrings.json';\nimport Template from \"../../components/hiv_template/Template\";\nimport PageContent from \"../../components/hiv_page_content/PageContent\";\nimport IconBulletList from \"../../components/ncl/NclBulletList/IconBulletList\";\nimport './Protect.scss'\n\nimport condomsImage from '../../shared_images/colored_icons/condoms-OFF.svg';\nimport hivTestingImage from '../../shared_images/colored_icons/hivTesting-OFF.svg';\nimport treatmentImage from '../../shared_images/colored_icons/treatment-OFF.svg';\nimport PrEPImage from '../../shared_images/colored_icons/PrEP-OFF.svg';\nimport PEPImage from '../../shared_images/colored_icons/PEP-OFF.svg';\nimport ProtectHeaderImage from './protected-header-image.jpg';\n\nconst iconImages = [\n PrEPImage,\n PEPImage,\n condomsImage,\n hivTestingImage,\n treatmentImage,\n];\n\ninterface ProtectInterface { lexicon: Lexicon }\n\nconst Protect: React.FC = ({ lexicon }) => {\n const bodyList = arrayFromLexicon(lexicon, 'list');\n\n return (\n \n \n \n \n );\n};\n\nconst ProtectLexicon = new Lexicon(texts, 'en', 'client/src/pages/protect/ProtectStrings.json');\n\nconst EditableProtect = () => (\n \n);\n\nexport default EditableProtect;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport { rootReducerState } from '../../reducers';\nimport { arrayFromLexicon } from \"../../utils\";\nimport texts from './TalkToProviderStrings.json';\nimport Template from \"../../components/hiv_template/Template\";\nimport PageContent from \"../../components/hiv_page_content/PageContent\";\nimport BulletList from \"../../components/ncl/NclBulletList/BulletList\";\nimport Markdown from '../../components/ncl/Markdown';\nimport ProviderHeaderImage from './provider-header-image.jpg';\nimport './TalkToProvider.scss';\n\ninterface TalkToProviderInterface { \n notes: string,\n lexicon: Lexicon\n}\n\nconst TalkToProvider: React.FC = ({ notes, lexicon }) => {\n const bodyList = arrayFromLexicon(lexicon, 'list');\n\n return (\n \n \n \n {\n notes && (\n <>\n \n
    \n {notes}\n
    \n \n )\n }\n \n );\n}\n\nconst mapStateToProps = ({ notes }: rootReducerState) => ({ notes });\n\nconst connectedTalkToProvider = connect(mapStateToProps)(TalkToProvider);\n\nconst TalkToProviderLexicon = new Lexicon(texts, 'en', 'client/src/pages/talkToProvider/TalkToProviderStrings.json');\n\nconst EditableTalkToProvider = () => (\n \n);\n\nexport default EditableTalkToProvider;\n","import React from \"react\";\nimport { Dispatch } from 'redux';\nimport { connect } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { Lexicon, EditWrapper } from '@nitidbit/lexicon';\nimport LogoutButton from '../../components/hiv_logout_button/LogoutButton';\nimport texts from './OutroStrings.json';\nimport PageContent from \"../../components/hiv_page_content/PageContent\";\nimport { userIdActionType, userIdActionTypeEnums } from '../../actions/userIdActions';\nimport Template from \"../../components/hiv_template/Template\";\nimport { recordEvent } from \"../../utils\";\nimport './Outro.scss';\n\ntype userIdInterface = string\ntype getNewUserIdType = () => void;\n\ninterface OutroInterface { \n updateUserId: (userId: string) => object,\n lexicon: Lexicon\n}\n\nconst Outro: React.FC = ({ updateUserId, lexicon }) => {\n const getNewUserId: getNewUserIdType = () => {\n fetch('/api/userId', { method: 'POST' })\n .then(res => res.json())\n .then(json => {\n updateUserId(JSON.stringify(json.user_id));\n sessionStorage.setItem('userId', JSON.stringify(json.user_id));\n })\n .catch(err => { console.error(err) })\n }\n\n const saveUserLog = () => {\n fetch('/api/events', { method: 'PUT',\n body: JSON.stringify({ 'events': sessionStorage, 'userId': sessionStorage.getItem('userId') }),\n headers: { 'Content-Type': 'application/json' }\n })\n .then(res => res.json())\n .catch(err => { console.error(err) })\n }\n\n return (\n \n \n
    \n { recordEvent(\"RESTART\"); saveUserLog(); }} >\n {lexicon.get('introduction')}\n \n { recordEvent(\"RETURN_TO_MENU\"); saveUserLog(); }} >\n {lexicon.get('main_menu')}\n \n { recordEvent(\"DONE\"); saveUserLog(); getNewUserId(); } } >\n {lexicon.get('all_done')}\n \n
    \n \n );\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\n updateUserId: (id: string) => dispatch({ type: userIdActionTypeEnums.updateUserId, payload: id }),\n});\n\nconst connectedOutro = connect(null, mapDispatchToProps)(Outro);\n\nconst OutroLexicon = new Lexicon(texts, 'en', 'client/src/pages/outro/OutroStrings.json');\n\nconst EditableNote = () => (\n \n);\n\nexport default EditableNote;\n","import React from \"react\";\nimport kebabCase from \"lodash/kebabCase\";\nimport { Link } from \"react-router-dom\";\nimport { routes } from '../../PageRoutes';\nimport './SecretDevPage.scss';\n\nconst SecretDevPage: React.FC = () => {\n return (\n
    \n {\n Object.keys(routes)\n .map(route => kebabCase(route))\n .map(formattedRoute => (\n \n {formattedRoute}\n \n ))\n }\n
    \n );\n};\n\nexport default SecretDevPage;\n","import kebabCase from \"lodash/kebabCase\";\nimport React, { useEffect } from \"react\";\nimport { connect } from 'react-redux';\nimport { Dispatch } from 'redux';\nimport { Route, Switch } from \"react-router-dom\";\nimport { Lexicon } from '@nitidbit/lexicon';\nimport { userIdActionType, userIdActionTypeEnums } from './actions/userIdActions';\nimport GetIt from \"./pages/getIt/GetIt\";\nimport HIV from \"./pages/HIV/HIV\";\nimport Options from \"./pages/options/Options\";\nimport Prevent from \"./pages/prevent/Prevent\";\nimport SideEffects from \"./pages/sideEffects/SideEffects\";\nimport Pregnancy from './pages/pregnancy/Pregnancy';\nimport Start from \"./pages/start/Start\";\nimport Welcome from \"./pages/welcome/Welcome\";\nimport Why from \"./pages/why/Why\";\nimport Menu from \"./pages/menu/Menu\";\nimport UseIt from './pages/useIt/UseIt';\nimport STD from './pages/std/STD';\nimport Protect from './pages/protect/Protect';\nimport TalkToProvider from './pages/talkToProvider/TalkToProvider';\nimport Outro from './pages/outro/Outro';\nimport SecretDevPage from './pages/SecretDevPage/SecretDevPage';\n\ninterface RouteInterface { page: React.FC<{lexicon?: Lexicon }>; back?: string; next?: string; }\n\ninterface PageRoutesInterface {\n updateUserId: (userId: string) => object\n}\n\ntype getNewUserIdType = () => void;\n\nexport const routes: {[s: string]: RouteInterface} = {\n getIt: {\n next: \"menu\",\n back: \"menu\",\n page: GetIt,\n },\n hiv: {\n next: \"options\",\n page: HIV,\n },\n menu: {\n page: Menu,\n },\n options: {\n next: \"menu\",\n page: Options,\n },\n prevent: {\n back: \"menu\",\n next: \"std\",\n page: Prevent,\n },\n sideEffects: {\n back: \"menu\",\n next: 'pregnancy',\n page: SideEffects,\n },\n pregnancy: {\n back: 'side-effects',\n next: 'menu',\n page: Pregnancy\n },\n start: {\n next: \"why\",\n page: Start,\n },\n useIt: {\n back: \"menu\",\n next: 'protect',\n page: UseIt,\n },\n welcome: {\n page: Welcome,\n },\n why: {\n next: \"hiv\",\n page: Why,\n },\n std: {\n page: STD,\n next: 'menu',\n back: 'prevent'\n },\n protect: {\n page: Protect,\n next: 'menu',\n back: 'use-it'\n },\n talkToProvider: {\n page: TalkToProvider,\n next: 'outro',\n back: 'menu'\n },\n // surveyExperience: {\n // page: SurveyExperience,\n // next: 'survey-helpfulness',\n // back: 'talk-to-provider'\n // },\n // surveyHelpfulness: {\n // page: SurveyHelpfulness,\n // next: 'survey-recommend',\n // back: 'survey-experience'\n // },\n // surveyRecommend: {\n // page: SurveyRecommend,\n // next: 'survey-revisit',\n // back: 'survey-helpfulness'\n // },\n // surveyRevisit: {\n // page: SurveyRevisit,\n // next: 'outro',\n // back: 'survey-recommend'\n // },\n outro: {\n page: Outro \n },\n secretDevPage: {\n page: SecretDevPage\n },\n secretDeveloperPage: {\n page: SecretDevPage\n },\n};\n\n\nconst PageRoutes: React.FC = ({ updateUserId }) => {\n const getNewUserId: getNewUserIdType = () => {\n fetch('/api/userId', { method: 'POST' })\n .then(res => res.json())\n .then(json => {\n updateUserId(JSON.stringify(json.user_id));\n sessionStorage.setItem('userId', JSON.stringify(json.user_id));\n })\n .catch(err => { console.error(err) })\n }\n\n useEffect(() => {\n getNewUserId();\n })\n\n return (\n \n \n \n \n {\n Object.keys(routes).map((key: string) => )\n }\n \n );\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\n updateUserId: (id: string) => dispatch({ type: userIdActionTypeEnums.updateUserId, payload: id }),\n});\n\nexport default connect(null, mapDispatchToProps)(PageRoutes);\n","import { noteActionTypeEnums, noteActionType } from '../actions/noteActions';\n\nconst noteReducer = (state = '', action: noteActionType) => {\n switch (action.type){\n case noteActionTypeEnums.updateNote: {\n return action.payload\n }\n\n default:\n return state;\n }\n};\n\nexport default noteReducer;\n","import { surveyActionTypeEnums, surveyActionType } from '../actions/surveyActions';\n\nexport enum surveyKeys {\n experience = 'experience',\n helpfulness = 'helpfulness',\n recommend = 'recommend',\n revisit = 'revisit'\n}\n\nconst initialState = {\n [surveyKeys.experience]: [],\n [surveyKeys.helpfulness]: [],\n [surveyKeys.recommend]: [],\n [surveyKeys.revisit]: []\n}\n\nconst surveyReducer = (state = initialState, action: surveyActionType) => {\n switch (action.type){\n case surveyActionTypeEnums.answerSurvey: {\n return { ...state, [action.payload.question]: [action.payload.answer] }\n }\n\n default:\n return state;\n }\n};\n\nexport default surveyReducer;\n","import { userIdActionType, userIdActionTypeEnums } from '../actions/userIdActions';\n\nconst userIdReducer = (state = '', action: userIdActionType) => {\n switch (action.type){\n case userIdActionTypeEnums.updateUserId: {\n return action.payload\n }\n\n default:\n return state;\n }\n};\n\nexport default userIdReducer;\n","import { unlockProviderActionType, unlockProviderActionTypeEnums } from '../actions/unlockProviderActions';\nimport { linkKeys } from '../pages/menu/Menu';\n\nconst initialState = {\n [linkKeys.prevent]: false,\n [linkKeys.useIt]: false,\n [linkKeys.sideEffects]: false,\n [linkKeys.getIt]: false,\n}\n\nconst unlockProviderReducer = (state = initialState, action: unlockProviderActionType) => {\n switch (action.type){\n case unlockProviderActionTypeEnums.visitMenuLink: {\n return { ...state, [action.payload]: true }\n }\n\n default:\n return state;\n }\n};\n\nexport default unlockProviderReducer;\n","import { StateType } from \"typesafe-actions\";\nimport { combineReducers } from \"redux\";\nimport notes from \"./noteReducer\";\nimport survey from \"./surveyReducer\";\nimport userId from \"./userIdReducer\";\nimport visitedMenuLinks from \"./unlockProviderReducer\";\n\nconst rootReducer = combineReducers({\n notes,\n survey,\n userId,\n visitedMenuLinks \n});\n\nexport type rootReducerState = StateType;\n\nexport default rootReducer;","import { createStore, } from \"redux\";\nimport rootReducer from \"./reducers\";\n\nconst store = createStore(rootReducer);\n\nexport default store;","import React from \"react\";\nimport { Provider } from \"react-redux\";\nimport { BrowserRouter as Router } from \"react-router-dom\";\nimport \"./App.scss\";\nimport PageRoutes from \"./PageRoutes\";\nimport store from \"./store\";\n\nconst App: React.FC = () => {\n return (\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\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: 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(\n (process as { env: { [key: string]: string } }).env.PUBLIC_URL,\n window.location.href\n );\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: string, config?: 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: string, config?: 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 App from \"./App\";\nimport \"./index.css\";\nimport * as serviceWorker from \"./serviceWorker\";\n\nReactDOM.render(, document.getElementById(\"root\"));\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":""}