{"version":3,"sources":["reportWebVitals.js","theme/index.js","components/layout/Appshell/styles.js","lib/settings.js","lib/authentication.js","providers/AuthenticationProvider.js","components/layout/Appshell/index.js","components/layout/Appshell/Appshell.js","components/layout/Header/styles.js","components/layout/Header/InfoPanel.js","assets/logos/brand/jasperactive-main-logo.svg","components/layout/Header/index.js","components/layout/Header/Header.js","components/layout/Footer/styles.js","assets/logos/socialmedia/Facebook-Logo.svg","assets/logos/socialmedia/Instagram-Logo.svg","assets/logos/socialmedia/Linkedin-Logo.svg","assets/logos/socialmedia/Twitter-Logo.svg","assets/logos/socialmedia/Youtube-Logo.svg","components/layout/Footer/Footer.js","components/layout/Footer/index.js","components/Home/styles.js","assets/banner/homepage-banner.svg","components/Home/Partners/styles.js","assets/logos/partners/certiport-logo.png","assets/logos/partners/certiport-logo-hover.png","assets/logos/partners/Microsoft-Logo.svg","assets/logos/partners/Microsoft-Logo-Hover.svg","assets/logos/partners/gmetrix-logo-new.png","assets/logos/partners/gmetrix-logo-hover.svg","assets/logos/partners/Intuit-Logo.svg","assets/logos/partners/Intuit-Logo-Hover.svg","assets/logos/partners/IC3-Logo.svg","assets/logos/partners/IC3-Logo-Hover.svg","components/Home/Partners/Partners.js","components/Home/Partners/index.js","components/Home/Products/styles.js","components/Home/Products/Product/style.js","components/Home/Products/Product/Product.js","assets/logos/products/jasperactive-DL-logo.svg","assets/logos/products/jmos-orange-logo.svg","assets/logos/products/jmos-online-orange-logo.png","assets/logos/products/jasperactive-QB-logo.svg","assets/logos/products/jasperactive_create_adobe.svg","lib/productsData.js","components/Home/Products/index.js","components/Home/Products/Products.js","components/Home/LearningPathway/styles.js","components/Home/LearningPathway/IndividualPathway/styles.js","components/Home/LearningPathway/IndividualPathway/index.js","components/Home/LearningPathway/IndividualPathway/IndividualPathway.js","assets/logos/learningpathway/benchmark-icon.svg","assets/logos/learningpathway/learn-icon.svg","assets/logos/learningpathway/practice-icon.svg","assets/logos/learningpathway/create-icon.svg","assets/logos/learningpathway/final-assessment-icon.svg","components/Home/LearningPathway/index.js","components/Home/LearningPathway/LearningPathway.js","components/Home/Testimonials/style.js","assets/logos/testimonials/testimonials-heart-icon.svg","components/Home/Testimonials/index.js","components/Home/Testimonials/Testimonials.js","assets/other/down-arrow-icon.svg","components/ui/Loading/styles.js","components/ui/Loading/index.js","components/ui/Loading/Loading.js","components/Home/index.js","components/Home/Home.js","components/FAQs/styles.js","components/FAQs/index.js","components/FAQs/FAQ.js","components/Product/styles.js","assets/logos/partners/Microsoft-Logo-Partner.svg","assets/logos/partners/IC3-Logo-Partner.svg","assets/logos/partners/Intuit-QB-Logo-Partner.svg","assets/logos/mos/ms-word-icon.svg","assets/logos/mos/ms-excel-icon.svg","assets/logos/mos/ms-ppt-icon.svg","assets/logos/mos/ms-access-icon.svg","assets/logos/mos/ms-outlook-icon.svg","assets/logos/products/jasperactive-QB-course-Logo.svg","assets/logos/digitalliteracy/L1.svg","assets/logos/digitalliteracy/L2.svg","assets/logos/digitalliteracy/L3.svg","assets/logos/products/create_adobe/Adobe_InDesign_Icon.svg","assets/logos/products/create_adobe/Adobe_Photoshop_Icon.svg","assets/other/JAMOSO-Exercise-Table.png","assets/other/not-attempted.svg","assets/other/incomplete.svg","lib/faqData.js","assets/other/circle-green.png","assets/other/windows-button-logo.svg","assets/other/apple-button-logo.svg","assets/logos/products/jasperactive-ac-icon.svg","components/adobeInstallationGuide/OperatingSystemDialog.js","assets/logos/products/jasperactive-ac.svg","assets/other/warning.svg","components/adobeInstallationGuide/LinkBox.js","components/adobeInstallationGuide/Requirements.js","components/adobeInstallationGuide/Step.js","components/adobeInstallationGuide/Steps.js","components/adobeInstallationGuide/InstallationDialog.js","components/adobeInstallationGuide/Main.js","components/Product/index.js","components/Product/ProductDetail.js","components/Dashboard/styles.js","components/BreadCrumbs/styles.js","components/BreadCrumbs/index.js","components/BreadCrumbs/BreadCrums.js","components/SubscribedProducts/style.js","components/SubscribedProducts/index.js","components/SubscribedProducts/SubscribedProduct.js","assets/dashboardicons/dashboard-icon-orange.svg","assets/dashboardicons/dashboard-icon-green.svg","assets/dashboardicons/dashboard-icon-purple.svg","assets/dashboardicons/dashboard-icon-yellow.svg","assets/dashboardicons/groups-icon-orange.svg","assets/dashboardicons/groups-icon-green.svg","assets/dashboardicons/groups-icon-purple.svg","assets/dashboardicons/groups-icon-yellow.svg","assets/dashboardicons/report-icon-orange.svg","assets/dashboardicons/report-icon-green.svg","assets/dashboardicons/report-icon-purple.svg","assets/dashboardicons/report-icon-yellow.svg","assets/dashboardicons/resources-icon-orange.svg","assets/dashboardicons/resources-icon-green.svg","assets/dashboardicons/resources-icon-purple.svg","assets/dashboardicons/resources-icon-yellow.svg","components/Dashboard/Dashboard.js","components/Dashboard/index.js","components/Pricing/style.js","assets/logos/salesteam/contact-icon.svg","assets/logos/salesteam/purchase-icon.svg","assets/logos/salesteam/success-icon.svg","assets/logos/salesteam/training-icon.svg","assets/logos/salesteam/progess-icon.svg","assets/logos/salesteam/student-icon.svg","assets/logos/salesteam/sales_banner.png","assets/logos/salesteam/sales_banner_2.png","components/ContactUs/style.js","components/ContactUs/index.js","components/ContactUs/ContactUs.js","components/Pricing/index.js","components/Pricing/Pricing.js","components/PrivateRoutes/index.js","components/PrivateRoutes/PrivateRoutes.js","components/PrivacyPolicy/styles.js","components/PrivacyPolicy/PrivacyPolicy.js","components/PrivacyPolicy/PrivacyNotice.js","components/PrivacyPolicy/TermsOfService.js","components/PrivacyPolicy/DataProcessingAgreement.js","assets/other/student-data-privacy-agreement.pdf","components/PrivacyPolicy/StudentDataPrivacy.js","components/PrivacyPolicy/StatementOfPrivacy.js","components/PrivacyPolicy/StudentPrivacyPledge.js","components/PrivacyPolicy/EndUserLicenseAgreement.js","components/authentication/AuthCallback/index.js","components/authentication/AuthCallback/AuthCallBack.js","components/authentication/Logout/index.js","components/authentication/Logout/Logout.js","components/authentication/SilentRenew/index.js","components/authentication/SilentRenew/SilentRenew.js","components/Download/styles.js","components/Download/index.js","components/Download/Download.js","components/Product/JDL.js","analytics/analytics.js","routes/index.js","analytics/useGoogleAnalytics.js","index.js"],"names":["reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","neutralColors","50","100","200","300","400","500","600","theme","createMuiTheme","overrides","MuiFilledInput","root","backgroundColor","breakpoints","keys","values","xs","sm","md","lg","xl","iphone5","typography","fontFamily","join","h1","fontSize","fontWeight","color","lineHeight","letterSpacing","textTransform","h2","h3","h4","h5","h6","body1","body2","subtitle1","subtitle2","button","caption","overline","palette","info","light","main","dark","success","warning","error","primary","contrastText","secondary","accent","blue","green","purple","product","cci","jasperactive","digitalLiteracy","quickbooks","adobeCreate","jasperactiveGreen","grey","text","title","jasperOrange","white","black","background","default","styles","makeStyles","appShell","height","display","flexDirection","overflow","common","appShellJDL","minHeight","mainJDL","width","padding","flex","maxWidth","url","window","location","protocol","hostname","port","toLocaleLowerCase","isDevEnvironment","indexOf","getApiUrl","getAvatarUrl","avatar","axios","defaults","baseURL","interceptors","request","use","config","token","getAccessToken","headers","Authorization","Promise","reject","SETTNGS","appUrl","identityUrl","apiUrl","clientId","Authentication","refreshAccessToken","sessionStorage","getItem","setItem","signinSilent","removeItem","clearStorage","onSuccess","userManager","clearStaleState","localStorage","clear","clearStorageAsync","a","signoutRedirectCallback","onFinish","user","catch","console","createSession","access_token","SETTINGS","JSON","stringify","this","UserManager","authority","client_id","redirect_uri","post_logout_redirect_uri","response_type","response_mode","scope","filterProtocolClaims","loadUserInfo","automaticSilentRenew","silent_redirect_uri","revokeAccessTokenOnSignout","userStore","WebStorageStateStore","store","events","addUserLoaded","addSilentRenewError","e","addAccessTokenExpiring","addAccessTokenExpired","getSessionInfo","parse","sessionInfo","AuthenticationContext","React","createContext","AuthenticationProvider","children","useState","authentication","setUser","userRole","setUserRole","checkingAuth","setCheckingAuth","useEffect","profile","finally","Provider","value","useAuthentication","useContext","Appshell","header","footer","privacy","classes","useLocation","className","pathname","Container","appBar","zIndex","infoPanel","justifyContent","alignItems","down","infoText","textDecorationLine","paddingRight","spacing","cursor","separator","border","marginRight","infoContainerLeft","paddingLeft","infoContainerRight","infoPanelDescription","navContainer","flexGrow","navItems","listStyleType","navIndividualItem","marginTop","marginBottom","marginLeft","activeLink","loginButton","dashboardSection","userDashboardTitle","userDhaboarMenuItems","drawer","appToolBar","mixins","toolbar","burgerIcon","brandLogo","InfoPanel","history","useHistory","component","Typography","onClick","open","push","Header","setDrawer","openLegalMenu","setOpenLegalMenu","anchorEl","setAnchorEL","privacyAnchor","setPrivacyAnchor","handleClose","handleDrawer","goToproducts","target","id","scroller","scrollTo","smooth","handleLogin","signinRedirect","handleLogout","signoutRedirect","handleAccountSettings","useTheme","isMatched","useMediaQuery","goToSupport","goToBlog","handleLegalMenus","currentTarget","preventDefault","goToPrivacy","goToEULA","AppBar","position","Toolbar","src","BrandLogo","alt","exact","to","activeClassName","href","toString","Menu","style","Boolean","keepMounted","getContentAnchorEl","anchorOrigin","vertical","horizontal","MenuItem","aria-haspopup","aria-controls","Avatar","name","Button","variant","disableElevation","disabled","onClose","Drawer","anchor","IconButton","Collapse","in","unmountOnExit","container","paddingTop","paddingBottom","bottom","left","right","individualContainer","headeOfficeSection","headOfficeIndivdual","headOfficeTitle","headOfficeAddress","connectTitle","emailandphoneSection","phoneandemailtitle","phoneandemail","socialSection","socialIcon","_extends","Object","assign","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","fillRule","clipRule","d","fill","SvgFacebookLogo","_ref","svgRef","titleId","props","viewBox","xmlns","ref","ForwardRef","_ref4","SvgInstagramLogo","clipPath","SvgLinkedinLogo","SvgTwitterLogo","SvgYoutubeLogo","Footer","isMobile","JasperActiveLogo","alignSelf","textDecoration","brandSection","brandLeft","brandTitle","brandDesc","buttonContainer","exploreButton","requestDemoButton","bannerImage","iconDiv","carousel","partners","Partners","CustomLeftArrow","CustomRightArrow","customRightArrow","customLeftArrow","responsive","desktop","breakpoint","max","min","items","slidesToSlide","tablet","miniTable","mobile","infinite","autoPlay","CertiportLogo","hoverSrc","CertiportHover","MicrosoftLogo","MicrosoftHoverLogo","GmetrixLogo","GmetrixHoverLogo","IntuitLogo","IntuitHoverLogo","IC3Logo","IC3HoverLogo","map","partner","onMouseOver","applyHoverImage","onMouseOut","defaultSrc","applyDefaultImage","productContainer","flexWrap","cardConatiner","minWidth","topContent","description","learMore","Product","logo","type","Card","borderTop","CardContent","products","JMosOrange","prodType","JMosOrangeOnline","JDigitalLiteracy","JQuickBook","JAdobeCreate","Products","pathContainer","IndividualPathway","Paper","LearningPathway","renderpathwayData","BenchmarkLogo","LearnLogo","PracticeLogo","CreateLogo","FinalAssessmentLogo","data","Fragment","headingSection","heading","testimonialSection","individualTestimonial","review","fontStyle","reviewBy","Testimonials","HeartIcon","by","Loading","message","Box","CircularProgress","size","margin","Home","loading","setLoading","isSubscribed","setIsSubscribed","get","response","role","teacherProducts","studentProducts","hash","DownArrow","Banner","question","answer","FAQ","number","answers","img","answerwithlogo","handleFAQ","showFAQ","showAnswer","setshowAnswer","handlesetShow","undefined","indianswer","index","topcontainer","videoSection","topLeftcontainer","logoSection","buttonSection","goToButton","arrow","productPartnerSection","productPartnerTitle","courseSection","availableCourse","courses","individualCourse","coversLists","courseTitle","coversTitle","faqSection","faqTitle","otherProductsSection","otherProductTitle","otherProductSection","resources_jac","gap","resources_jac_courses","resources_jac_card","resources_jac_card_content","getFAQs","Jmosonline","answerswithlogo","NotAttempted","Incomplete","useStyles","dialog","textBox","up","buttonBox","borderColor","DialogTitle","withStyles","closeButton","top","other","disableTypography","aria-label","OperatingSystemDialog","Dialog","DialogContent","JACIcon","endIcon","WindowsButtonIcon","AppleButtonIcon","LinkBox","links","filter","x","isHidden","item","mt","Link","underline","icon","listStyle","Requirements","WarningIcon","step","stepNumber","borderRadius","Step","stepContainer","stepText","Steps","operatingSystem","isLoading","setIsLoading","setInfo","setError","links1","downloadUrl","getInfo","getVideoUrl","controls","file","attributes","controlsList","dialogContent","card","cardContent","cardAction","InstallationDialog","onBack","showRequirements","setShowRequirements","JACLogo","startIcon","mb","getTitle","Main","setOpen","openRequirements","setOpenRequirements","setOperatingSystem","_operatingSystem","ProductDetail","params","useParams","productsUrl","setProductsUrl","openAdobeInstallationGuide","setOpenAdobeInstallationGuide","productType","toLowerCase","setSubsribedProduct","useCallback","includes","setShowFAQ","all","subscribedProducts","forEach","productName","getProductUrl","applicationName","productUrl","find","setProductData","setData","productpartner","goTourl","requestDemoUrl","availableCoursesTitle","youtubeVideoSrc","MSWord","topicCovers","covers","MsExcel","MsPPT","MsAccess","MsOfficeOutlook","DLL1","DLL2","DLL3","JQBCourseLogo","JACCourseLogo","JacInDesign","dataSheetSrc","fAndBSrc","JacInPhotoshop","split","frameBorder","allow","course","faq","userInfo","userName","userType","getStartedButton","subscribeProduct","productSection","lastLink","backarrow","BreadCrumbs","withRouter","goBack","Breadcrumbs","buttonsContainer","instructorIndividual","instructorMenuSection","instructorTitle","instructorContent","SubscribedProduct","goToTitle","instructorMenus","openItem","visibility","goToRespectiveUrl","getDefaultProducts","urlInfo","userProducts","JMosLogo","getDefaultUrl","DigitalLiteracyLogo","defaultProductsUrl","QuickBookLogo","getTeacherProducts","getProductLogo","getApplicationTitle","instructorsMenu","getDashboardIcon","dashboardUrl","getManageGroupIcon","manageGroupsUrl","getReportIcon","reportsUrl","getInstructorIcon","resourcesUrl","getStudentProducts","JMosOnlineLogo","DashboardGreenIcon","DashboardOrangeIcon","DashboardPurpleIcon","DashboardYellowIcon","GroupsGreenIcon","GroupsOrangeIcon","GroupsPurpleIcon","GroupsYellowIcon","ReportGreenIcon","ReportOrangeIcon","ReportPurpleIcon","ReportYellowIcon","InstructorGreenIcon","InstructorOrangeIcon","InstructorPurpleIcon","InstructorYellowIcon","Dashboard","setProducts","defaultproducts","setDefaultProducts","dashboard","productList","defaultproduct","salesTeamPath","salesTitle","salesIndividual","joinSellerTeam","joinLeftSection","joinIndividualText","contactUsSection","contactUsSectionTitle","contactusSubtitle","contactForm","inputField","messageField","submitBtn","ContactUs","show","enqueueSnackbar","useSnackbar","companyName","jobTitle","email","phoneNumber","city","country","userData","setUserData","resetError","validateEmail","test","String","validatePhone","phonenumber","TextField","helperText","InputProps","fullWidth","required","placeholder","onChange","multiline","rowsMax","rows","post","Pricing","isMathced","isTablet","renderSalesData","ContactLogo","PurchaseLog","SuccessLogo","TrainingLogo","StudentEngagementLogo","ProgressLogo","BannerLogo1","BannerLogo","PrivateRoutes","Component","restProps","render","state","from","textAlign","btn","privacyTitle","privacyDesc","privacyHeader","pdf","boxShadow","PrivacyPolicy","setShow","document","cookie","some","trim","startsWith","userEmail","date","Date","setTime","getTime","expires","toUTCString","p","PrivacyNotice","TermsOfService","rel","DataProcessingAgreement","pdfjs","GlobalWorkerOptions","workerSrc","version","StudentDataPrivacy","numPages","setNumPages","pageNumber","setPageNumber","StudentAgreementPDF","onLoadSuccess","StatementOfPrivacy","StudentPrivacyPledge","EndUserLicenseAgreement","AuthCallBack","signinRedirectCallback","authCallback","Logout","logout","SilentRenew","signinSilentCallback","silentRenew","Download","match","appName","releaseDate","focus","JDL","analytics","init","ReactGA","initialize","debug","sendEvent","payload","event","sendPageview","path","set","page","pageview","Routes","currentPath","search","useGoogleAnalytics","AuthCallback","App","ThemeProvider","CssBaseline","maxSnack","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.96fb6c90.chunk.js","sourcesContent":["const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from \"react\";\nimport { Box, Typography } from \"@material-ui/core\";\nimport { createMuiTheme, useTheme } from \"@material-ui/core/styles\";\n\nconst neutralColors = {\n 50: \"#FFFFFF\",\n 100: \"#F7F8F9\",\n 200: \"#EBECEE\",\n 300: \"#DEDFE3\",\n 400: \"#717073\",\n 500: \"#39363A\",\n 600: \"#010101\"\n};\n\nlet theme = createMuiTheme({\n overrides: {\n // Style sheet name ⚛️\n MuiFilledInput: {\n // Name of the rule\n root: {\n // Some CSS\n backgroundColor: neutralColors[100],\n },\n },\n },\n breakpoints: {\n keys: [\n \"xs\",\n \"sm\",\n \"md\",\n \"lg\",\n \"xl\",\n \"iphone5\",\n ],\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n iphone5: 321\n }\n },\n typography: {\n fontFamily: [\n '\"Segoe UI\"',\n \"Open Sans\",\n \"Roboto\",\n '\"Helvetica Neue\"',\n \"Arial\",\n \"sans-serif\",\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"'\n ].join(\",\"),\n h1: {\n fontSize: 32,\n fontWeight: \"normal\",\n color: neutralColors[600],\n lineHeight: \"40px\",\n letterSpacing: 0,\n textTransform: \"none\"\n },\n h2: {\n fontSize: 26,\n fontWeight: \"normal\",\n color: neutralColors[600],\n lineHeight: \"36px\",\n letterSpacing: 0,\n textTransform: \"none\"\n },\n h3: {\n fontSize: 20,\n fontWeight: \"normal\",\n color: neutralColors[600],\n lineHeight: \"28px\",\n letterSpacing: 0,\n textTransform: \"none\"\n },\n h4: {\n fontSize: 16,\n fontWeight: \"bold\",\n color: neutralColors[500],\n lineHeight: \"24px\",\n letterSpacing: 0,\n textTransform: \"none\"\n },\n h5: {\n fontSize: 14,\n fontWeight: \"bold\",\n color: neutralColors[500],\n lineHeight: \"24px\",\n letterSpacing: 0,\n textTransform: \"none\"\n },\n h6: {\n fontSize: 14,\n fontWeight: \"bold\",\n color: neutralColors[500],\n lineHeight: \"24px\",\n letterSpacing: 0,\n textTransform: \"none\"\n },\n body1: {\n fontSize: 16,\n fontWeight: \"normal\",\n color: neutralColors[500],\n lineHeight: \"24px\",\n letterSpacing: 0,\n textTransform: \"none\"\n },\n body2: {\n fontSize: 16,\n fontWeight: \"normal\",\n color: neutralColors[500],\n lineHeight: \"20px\",\n letterSpacing: 0,\n textTransform: \"none\"\n },\n subtitle1: {\n fontSize: 13,\n fontWeight: 600,\n color: neutralColors[500],\n lineHeight: \"20px\",\n letterSpacing: 0,\n textTransform: \"none\"\n },\n subtitle2: {\n fontSize: 13,\n fontWeight: \"normal\",\n color: neutralColors[500],\n lineHeight: \"20px\",\n letterSpacing: 0,\n textTransform: \"none\"\n },\n button: {\n fontSize: 13,\n fontWeight: \"normal\",\n color: \"#0C83DE\",\n lineHeight: \"24px\",\n letterSpacing: \"1.25px\",\n textTransform: \"uppercase\"\n },\n caption: {\n fontSize: 10,\n fontWeight: \"normal\",\n color: neutralColors[400],\n lineHeight: \"16px\",\n letterSpacing: 0,\n textTransform: \"none\"\n },\n overline: {\n fontSize: 10,\n fontWeight: \"normal\",\n color: neutralColors[400],\n lineHeight: \"16px\",\n letterSpacing: 0,\n textTransform: \"uppercase\"\n }\n },\n palette: {\n info: {\n light: \"#CEE6F8\",\n main: \"#0C83DE\",\n dark: \"#0A69B2\"\n },\n success: {\n light: \"#D9EFD4\",\n main: \"#3FAE2A\",\n dark: \"#266819\"\n },\n warning: {\n light: \"#FBE7B5\",\n main: \"#ECB322\",\n dark: \"#CC7300\"\n },\n error: {\n light: \"#FCE8EB\",\n main: \"#DE1B3B\",\n dark: \"#B2162F\"\n },\n primary: {\n contrastText: \"#FFF\",\n main: \"#BF1212\",\n },\n secondary: {\n contrastText: \"#FFF\",\n light: \"#FBD4BC\",\n main: \"#F37121\",\n dark: \"#C25A1A\"\n },\n accent: {\n blue: \"#22BCB9\",\n green: \"#C1CD23\",\n purple: \"#C051D5\"\n },\n product: {\n cci: \"#F37121\",\n jasperactive: \"#BF1212\",\n digitalLiteracy: \"#3FAE2A\",\n quickbooks: \"#9F84AB\",\n adobeCreate: \"#4d36cb\",\n \"ms-word\": {\n light: \"#D5DDEA\",\n main: \"#2B5797\",\n dark: \"#1A345B\"\n },\n \"ms-excel\": {\n light: \"#CFE5D9\",\n main: \"#107C41\",\n dark: \"#0B572E\"\n },\n \"ms-ppt\": {\n light: \"#F1DAD4\",\n main: \"#B7472A\",\n dark: \"#80321D\"\n }\n },\n jasperactiveGreen: {\n main: '#3FAE2A',\n },\n grey: {\n ...neutralColors\n },\n text: {\n title: \"#010101\",\n primary: \"#39363A\",\n secondary: \"#717073\"\n },\n jasperOrange: {\n light: \"#F69051\",\n main: \"#F37121\"\n },\n white: {\n main: \"#FFF\"\n },\n dark: {\n main: \"#555759\"\n },\n black: {\n main: \"#000000\"\n },\n background: {\n light: \"#F1F1F1\",\n main: \"#EEEEEE\",\n dark: \"#555759\",\n default: \"#FFF\"\n }\n }\n});\n\nexport * from './globalStyles';\nexport { theme };\n\nexport const ThemeDisplay = () => {\n const theme = useTheme();\n return (\n \n \n Heading One\n Heading Two\n Heading Three\n Heading Four\n Heading Five\n Heading Six\n Subtitle 1\n Subtitle 2\n Body 1\n Body 2\n \n Button\n \n \n Caption\n \n \n Overline\n \n \n \n \n Information Light\n \n \n Information\n \n \n Information Dark\n \n \n Success Light\n \n \n Success\n \n \n Success Dark\n \n \n Warning Light\n \n \n Warning\n \n \n Warning Dark\n \n \n Error Light\n \n \n Error\n \n \n Error Dark\n \n \n Primary Light\n \n \n Primary\n \n \n Primary Dark\n \n \n Secondary Light\n \n \n Secondary\n \n \n Secondary Dark\n \n \n \n \n Accent Blue\n \n \n Accent Green\n \n \n Accent Purple\n \n \n Product CCI\n \n \n Product Jasperactive\n \n \n Product Jasperactive Digital Literacy\n \n \n Product MS Word Light\n \n \n Product MS Word\n \n \n Product MS Word Dark\n \n \n Product MS Excel Light\n \n \n Product MS Excel\n \n \n Product MS Excel Dark\n \n \n Product MS Powerpoint Light\n \n \n Product MS Powerpoint\n \n \n Product MS Powerpoint Dark\n \n \n \n \n Neutral Palette Grey/50\n \n \n Neutral Palette Grey/100\n \n \n Neutral Palette Grey/200\n \n \n Neutral Palette Grey/300\n \n \n Neutral Palette Grey/400\n \n \n Neutral Palette Grey/500\n \n \n Neutral Palette Grey/600\n \n \n Text Titles\n \n \n Text Primary\n \n \n Text Secondary\n \n \n \n );\n};\n\n","import { makeStyles } from '@material-ui/core/styles';\nimport { theme } from '../../../theme';\n\nconst styles = makeStyles({\n appShell:{\n height:\"100%\",\n display:\"flex\",\n flexDirection:\"column\",\n overflow:\"auto\",\n background:theme.palette.common.white,\n },\n\n appShellJDL: {\n height:\"100vh\",\n display:\"flex\",\n flexDirection:\"column\",\n overflow:\"auto\",\n background:theme.palette.common.white,\n },\n\n main:{\n height:\"100%\",\n minHeight:\"90vh\",\n display:\"flex\",\n flexDirection:\"column\",\n },\n\n mainJDL: {\n width: '100%',\n display:\"flex\",\n flexDirection:\"column\",\n padding: 0,\n flex: 1,\n maxWidth: 'unset'\n }\n\n})\n\n\nexport default styles;","import axios from 'axios';\nimport { getAccessToken } from \"./authentication\";\n\nconst getCurrentUrl = () => {\n return window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\n};\n\nconst url = getCurrentUrl().toLocaleLowerCase();\n\nconst isDevEnvironment = url.indexOf(\"localhost\") > -1 || url.indexOf(\"-home-dev\") > -1 || url.indexOf(\"//dev.jasperactive.com\") > -1;\n\nconst getIdentityUrl = () => {\n if (isDevEnvironment) {\n return \"https://jasperactive-accounts-dev.azurewebsites.net\";\n }\n else {\n return \"https://accounts.jasperactive.com\";\n }\n};\n\nconst getApiUrl = () => {\n if (isDevEnvironment) {\n return \"https://jasperactive-add-in-api-dev.azurewebsites.net/api\";\n }\n else {\n return \"https://add-in-api.jasperactive.com/api\";\n }\n};\n\nexport const getAvatarUrl = (avatar) => {\n switch (avatar) {\n case 'smile-pen':\n return 'https://res.cloudinary.com/jasperactive/image/upload/v1591897262/Avatar/smile-pen_gv2qos.svg';\n case 'smile-pencil':\n return 'https://res.cloudinary.com/jasperactive/image/upload/v1591897262/Avatar/smile-pencil_qbjfbo.svg';\n case 'smile-mug':\n return 'https://res.cloudinary.com/jasperactive/image/upload/v1591897262/Avatar/smile-mug_dsg6pt.svg';\n case 'smile-apple':\n return 'https://res.cloudinary.com/jasperactive/image/upload/v1591897261/Avatar/smile-apple_ji0gts.svg';\n\n default:\n return null;\n }\n};\n\naxios.defaults.baseURL = getApiUrl();\n\naxios.interceptors.request.use(config => {\n const token = getAccessToken();\n config.headers.Authorization = `Bearer ${token}`;\n return config;\n}, function (error) {\n return Promise.reject(error);\n});\n\nconst SETTNGS = {\n appUrl: url,\n identityUrl: getIdentityUrl(),\n apiUrl: getApiUrl(),\n isDevEnvironment\n};\n\nexport default SETTNGS;\n","import SETTINGS from './settings';\nimport { UserManager, WebStorageStateStore } from 'oidc-client';\n\nconst clientId = \"5141b488-4783-4577-af2b-321c29ea3b42\";\n\nexport class Authentication {\n constructor() {\n this.userManager = new UserManager({\n authority: SETTINGS.identityUrl,\n client_id: clientId,\n redirect_uri: `${SETTINGS.appUrl}/auth-callback`,\n post_logout_redirect_uri: `${SETTINGS.appUrl}/logout`,\n response_type: \"code\",\n response_mode: 'query',\n scope: \"openid profile email JasperactiveWebApi\",\n filterProtocolClaims: true,\n loadUserInfo: true,\n automaticSilentRenew: true,\n silent_redirect_uri: `${SETTINGS.appUrl}/silent-renew`,\n revokeAccessTokenOnSignout: true,\n userStore: new WebStorageStateStore({ store: window.sessionStorage })\n });\n\n this.userManager.events.addUserLoaded((user) => {\n\n });\n\n this.userManager.events.addSilentRenewError((e) => {\n // console.log('silent renew error', e.message);\n });\n\n this.userManager.events.addAccessTokenExpiring((e) => {\n this.refreshAccessToken();\n });\n\n this.userManager.events.addAccessTokenExpired(() => {\n // console.log('Access token has expired: ', new Date());\n });\n }\n\n refreshAccessToken = () => {\n const isRefreshingAccessToken = sessionStorage.getItem(\"isRefreshingAccessToken\");\n if (!isRefreshingAccessToken) {\n sessionStorage.setItem(\"isRefreshingAccessToken\", \"true\");\n // console.log(\"Refreshing access token...\");\n this.signinSilent(() => { sessionStorage.removeItem(\"isRefreshingAccessToken\"); });\n }\n }\n\n clearStorage = (onSuccess) => {\n this.userManager.clearStaleState().then(() => {\n localStorage.clear();\n sessionStorage.clear();\n\n if (onSuccess) {\n onSuccess();\n }\n });\n };\n\n clearStorageAsync = async (onSuccess) => {\n await this.userManager.clearStaleState();\n localStorage.clear();\n sessionStorage.clear();\n\n if (onSuccess) {\n onSuccess();\n }\n };\n\n signoutRedirectCallback = () => {\n this.userManager.signoutRedirectCallback().then(() => {\n localStorage.clear();\n });\n this.userManager.clearStaleState();\n };\n\n signinSilent = (onFinish) => {\n try {\n this.userManager.signinSilent().then(user => {\n // console.log('sign in silent completed, token expires at', getExpirationTime());\n // console.log('Access token:', getAccessToken());\n onFinish?.(user);\n }).catch(error => {\n console.error(\"sign in silent failed:\", error);\n onFinish?.();\n });\n } catch (error) {\n console.error(error);\n onFinish?.();\n }\n }\n\n createSession = user => {\n if (user && user.access_token) {\n sessionStorage.setItem(`oidc.user:${SETTINGS.identityUrl}:JasperactiveAddin`, JSON.stringify(user));\n }\n };\n}\n\nexport const getSessionInfo = () => {\n return JSON.parse(\n sessionStorage.getItem(`oidc.user:${SETTINGS.identityUrl}:${clientId}`),\n );\n}\n\nexport const getAccessToken = () => {\n const sessionInfo = getSessionInfo();\n\n if (sessionInfo)\n return sessionInfo.access_token;\n\n return null;\n}\n\nexport const getExpirationTime = () => {\n const sessionInfo = getSessionInfo();\n let date = new Date('1970-01-01T00:00:00Z');\n date.setTime(parseInt(sessionInfo.expires_at) * 1000);\n return new Date(date);\n};\n","import React, { useContext, useEffect, useState } from \"react\";\nimport { Authentication } from \"../lib/authentication\";\n\nexport const AuthenticationContext = React.createContext();\n\nexport const AuthenticationProvider = ({ children }) => {\n const [authentication,] = useState(new Authentication());\n const [user, setUser] = useState(null);\n const [userRole, setUserRole] = useState(null);\n const [checkingAuth, setCheckingAuth] = useState(true);\n\n useEffect(() => {\n authentication.userManager.signinSilent().then(user => {\n if (user?.profile) {\n setUser(user?.profile);\n }\n }).catch(error => {\n if (error !== \"ErrorResponse: login_required\") {\n console.error(\"Error detecting user login:\", error);\n }\n }).finally(() => setCheckingAuth(false));\n }, [authentication.userManager]);\n\n return (\n \n {children}\n \n );\n}\n\nexport const useAuthentication = () => {\n const value = useContext(AuthenticationContext);\n return value;\n};","import Appshell from './Appshell';\nexport default Appshell;","import { Container } from '@material-ui/core'\nimport React from 'react'\nimport styles from './styles';\nimport { AuthenticationProvider } from \"../../../providers/AuthenticationProvider\";\nimport { useLocation } from 'react-router-dom';\n\nconst Appshell = ({ children, header, footer, privacy }) => {\n const classes = styles();\n let location = useLocation();\n\n return (\n \n
\n {header}\n \n {children}\n \n {location.pathname === '/jdl' ? null : footer}\n {location.pathname === '/jdl' ? null : privacy}\n
\n
\n )\n}\n\nexport default Appshell;","import { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../../theme\";\n\nconst styles = makeStyles({\n appBar: {\n zIndex: 1400,\n },\n infoPanel: {\n backgroundColor: theme.palette.grey[400],\n height: \"40px\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n [theme.breakpoints.down('md')]:{\n display:\"none\"\n }\n\n },\n infoText: {\n textDecorationLine: \"underline\",\n paddingRight: theme.spacing(1),\n color: theme.palette.common.white,\n '&:hover': {\n cursor: \"pointer\"\n }\n },\n separator: {\n height: \"inherit\",\n border: \"1px solid white\",\n marginRight: theme.spacing(1),\n },\n infoContainerLeft: {\n display: \"flex\",\n paddingLeft: theme.spacing(3),\n },\n infoContainerRight: {\n display: \"flex\",\n paddingRight: theme.spacing(3),\n },\n infoPanelDescription:{\n color:\"white\", \n paddingRight:theme.spacing(1),\n [theme.breakpoints.down('xs')]:{\n display:\"none\"\n }\n \n },\n navContainer: {\n display: \"flex\",\n flexGrow: 1,\n justifyContent:\"center\"\n },\n navItems: {\n display: \"flex\",\n flexGrow: 0.5,\n justifyContent: 'space-evenly',\n alignItems:\"center\",\n listStyleType: \"none\",\n [theme.breakpoints.down('md')]:{\n display:\"none\"\n }\n },\n navIndividualItem: {\n ...theme.typography.body1,\n textDecorationLine:'none',\n [theme.breakpoints.down('md')]:{\n marginTop:theme.spacing(1),\n marginBottom:theme.spacing(1),\n marginLeft:theme.spacing(2),\n }\n },\n activeLink:{\n ...theme.typography.h4,\n color:theme.palette.primary.main\n \n },\n loginButton: {\n ...theme.typography.h4,\n backgroundColor:theme.palette.primary.main,\n color:theme.palette.common.white,\n marginRight: theme.spacing(8),\n '&:hover': {\n backgroundColor: theme.palette.primary.main\n },\n [theme.breakpoints.down(\"md\")]:{\n marginRight:\"0px\"\n },\n [theme.breakpoints.down('xs')]:{\n fontSize:\"12px\"\n }\n \n \n },\n dashboardSection:{\n display:\"flex\",\n alignItems:\"center\",\n '&:hover':{\n cursor:\"pointer\"\n }\n \n },\n userDashboardTitle:{\n ...theme.typography.body1,\n marginLeft:theme.spacing(1),\n [theme.breakpoints.down('xs')]:{\n display:\"none\"\n }\n \n },\n userDhaboarMenuItems:{\n ...theme.typography.subtitle2\n },\n drawer:{\n width:\"193px\",\n display:\"flex\",\n flexDirection:\"column\",\n alignItems:\"flex-start\",\n },\n appToolBar:theme.mixins.toolbar,\n burgerIcon:{\n color:theme.palette.primary.main,\n marginRight:theme.spacing(1)\n },\n brandLogo:{\n [theme.breakpoints.down('xs')]:{\n width:\"124px\"\n },\n '&:hover':{\n cursor:'pointer'\n }\n }\n});\n\n\nexport default styles;","import React from 'react'\nimport {useHistory} from 'react-router-dom'\nimport { Typography } from \"@material-ui/core\"\nimport styles from './styles';\n\nconst InfoPanel = () => {\n\n const classes = new styles();\n const history = useHistory();\n\n const goToCCI = () => {\n window.open(\"https://ccilearning.com/\", \"_blank\")\n }\n\n const goTosupport = () => {\n window.open(\"https://support.jasperactive.com/support/home\", \"_blank\");\n }\n\n const goToPricing = () => {\n history.push(\"/pricing\")\n }\n\n return (\n
\n
\n \n CCI Learning\n \n
\n \n Help\n \n
\n
\n \n We provide special pricing for academic customers. \n \n \n Find out more\n \n
\n
\n )\n}\n\nexport default InfoPanel;\n","export default __webpack_public_path__ + \"static/media/jasperactive-main-logo.cd6ee422.svg\";","import Header from './Header'\nexport default Header;","import React, { Fragment, useState } from \"react\";\nimport { NavLink as Link, useHistory } from \"react-router-dom\";\nimport {\n AppBar,\n Toolbar,\n Button,\n Typography,\n IconButton,\n Menu,\n MenuItem,\n Avatar,\n useMediaQuery,\n useTheme,\n Drawer,\n Collapse,\n} from \"@material-ui/core\";\nimport styles from \"./styles\";\nimport InfoPanel from \"./InfoPanel\";\nimport BrandLogo from \"../../../assets/logos/brand/jasperactive-main-logo.svg\";\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport ExpandLessIcon from \"@material-ui/icons/ExpandLess\";\nimport MenuIcon from \"@material-ui/icons/Menu\";\nimport { scroller } from \"react-scroll\";\nimport { useAuthentication } from \"../../../providers/AuthenticationProvider\";\nimport SETTINGS from \"../../../lib/settings\";\nimport { getAvatarUrl } from \"../../../lib/settings\";\nimport CloseIcon from \"@material-ui/icons/Close\";\n\nexport default function Header() {\n const { authentication, user, checkingAuth } = useAuthentication();\n const classes = new styles();\n\n const [drawer, setDrawer] = useState(false);\n const [openLegalMenu, setOpenLegalMenu] = useState(false);\n\n const [anchorEl, setAnchorEL] = useState(null);\n const [privacyAnchor, setPrivacyAnchor] = useState(null);\n const history = useHistory();\n\n const handleUserMenus = (e) => {\n !anchorEl ? setAnchorEL(e.currentTarget) : setAnchorEL(null);\n };\n\n const handleClose = () => {\n setAnchorEL(null);\n };\n\n const gotToDashBoard = (e) => {\n handleClose();\n history.push(\"/dashboard\");\n };\n\n const handleDrawer = () => {\n drawer ? setDrawer(false) : setDrawer(true);\n };\n const goToproducts = (e) => {\n const id = e.target.id;\n if (id === \"drawerProduct\") {\n handleDrawer();\n }\n scroller.scrollTo(\"products\", {\n smooth: true,\n });\n };\n const handleLogin = async () => {\n await authentication.userManager.signinRedirect();\n };\n const handleLogout = async () => {\n await authentication.userManager.signoutRedirect();\n };\n const handleAccountSettings = async () => {\n window.open(`${SETTINGS.identityUrl}/Account/UserProfile`, \"_blank\");\n };\n\n const theme = useTheme();\n const isMatched = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const goToSupport = (e) => {\n const id = e.target.id;\n if (id === \"drawerSupport\") {\n handleDrawer();\n }\n\n window.open(\"https://support.jasperactive.com/support/home\", \"_blank\");\n };\n\n const goToBlog = (e) => {\n const id = e.target.id;\n if (id === \"drawerBlog\") {\n handleDrawer();\n }\n window.open(\"https://ccilearning.com/blog/\", \"_blank\");\n };\n\n const handleLegalMenus = (e) => {\n !privacyAnchor ? setPrivacyAnchor(e.currentTarget) : setPrivacyAnchor(null);\n if (e) {\n e.preventDefault();\n }\n };\n\n const handleLegalMenusDrawer = () => {\n setOpenLegalMenu(!openLegalMenu);\n };\n\n const goToPrivacy = (e) => {\n const id = e.target.id;\n if (id === \"drawerPrivacy\") {\n handleDrawer();\n } else {\n handleLegalMenus();\n }\n history.push(\"/privacy-policy\");\n };\n\n const goToEULA = (e) => {\n const id = e.target.id;\n if (id === \"drawerEULA\") {\n handleDrawer();\n } else {\n handleLegalMenus();\n }\n history.push(\"/end-user-license-agreement\");\n }\n\n return (\n \n \n \n \n {isMatched && !drawer ? (\n \n ) : (\n \"\"\n )}\n {isMatched && drawer ? (\n \n ) : (\n \"\"\n )}\n {\n history.push(\"/\");\n }}\n />\n \n {user ? (\n \n \n \n {user.name}\n \n {!anchorEl ? : }\n \n ) : (\n \n Login / Register\n \n )}\n \n \n \n User Dashboard\n \n \n \n \n Account Settings\n \n \n \n \n Logout\n \n \n \n \n \n
\n
\n \n Home\n \n {\n goToproducts(e);\n }}\n >\n Our Products\n \n \n Pricing\n \n {\n goToSupport(e);\n }}\n to=\"/\"\n >\n Support\n \n goToBlog(e)}\n to=\"/\"\n >\n Blog\n \n \n \n \n Legal\n \n \n {!openLegalMenu ? : }\n \n
\n \n \n Privacy\n \n \n End User License Agreement\n \n \n
\n {user && (\n \n Dashboard\n \n )}\n \n
\n
\n
\n );\n}\n","import {makeStyles} from '@material-ui/core/styles'\nimport {theme} from '../../../theme'\n\n\nconst styles = makeStyles({\n container:{\n display:\"flex\",\n flex:1,\n backgroundColor:theme.palette.grey[100],\n paddingTop:\"24px\",\n paddingBottom:\"24px\",\n paddingLeft:\"10%\",\n paddingRight:\"10%\",\n justifyContent:\"space-around\",\n marginTop:\"180px\",\n position:\"relative\",\n bottom:0,\n left:0,\n right:0,\n [theme.breakpoints.down('sm')]:{\n flexDirection:\"column\"\n }\n },\n individualContainer:{\n display:\"flex\",\n flexDirection:\"column\",\n paddingTop:theme.spacing(1.5),\n paddingBottom:theme.spacing(1.5),\n [theme.breakpoints.down('sm')]:{\n alignItems:\"center\",\n width:\"100%\"\n }\n },\n headeOfficeSection:{\n display:\"flex\",\n marginTop:theme.spacing(4),\n justifyContent:\"space-between\",\n width:\"70%\",\n [theme.breakpoints.down('md')]:{\n width:\"100%\"\n },\n [theme.breakpoints.down('xs')]:{\n flexDirection:\"column\"\n }\n },\n headOfficeIndivdual:{\n display:\"flex\",\n flexDirection:\"column\",\n [theme.breakpoints.down('xs')]:{\n marginBottom:theme.spacing(2)\n }\n },\n headOfficeTitle:{\n ...theme.typography.h4\n },\n headOfficeAddress:{\n fontSize:\"16px\",\n lineHeight:\"32px\",\n color:theme.palette.grey[500],\n marginTop:theme.spacing(2)\n },\n connectTitle:{\n ...theme.typography.h2,\n color: theme.palette.grey[500],\n marginTop:theme.spacing(2),\n marginBottom:theme.spacing(2),\n fontWeight:\"500\"\n },\n emailandphoneSection:{\n display:\"flex\",\n marginBottom:theme.spacing(2)\n },\n phoneandemailtitle:{\n ...theme.typography.h4,\n fontWeight:500\n },\n phoneandemail:{\n ...theme.typography.body1,\n fontWeight:\"normal\"\n },\n socialSection:{\n display:\"flex\",\n justifyContent:\"space-between\",\n width:\"100%\"\n },\n socialIcon:{\n '&:hover':{\n cursor:\"pointer\"\n }\n }\n \n})\n\n\nexport default styles;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16 0ZM17.6677 16.7028V25.4077H14.066V16.7031H12.2667V13.7034H14.066V11.9024C14.066 9.4552 15.0821 8 17.9688 8H20.372V11.0001H18.8698C17.7461 11.0001 17.6718 11.4193 17.6718 12.2017L17.6677 13.7031H20.3891L20.0706 16.7028H17.6677Z\",\n fill: \"#39363A\"\n});\n\nfunction SvgFacebookLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFacebookLogo);\nexport default __webpack_public_path__ + \"static/media/Facebook-Logo.23a53742.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16 0ZM12.4822 7.51822C13.3924 7.4768 13.6833 7.46667 16.0008 7.46667H15.9981C18.3164 7.46667 18.6062 7.4768 19.5164 7.51822C20.4248 7.55982 21.0453 7.70365 21.5893 7.91467C22.1511 8.13245 22.6258 8.42401 23.1004 8.89868C23.5751 9.373 23.8667 9.84909 24.0853 10.4103C24.2951 10.9529 24.4391 11.573 24.4818 12.4815C24.5227 13.3917 24.5333 13.6826 24.5333 16.0001C24.5333 18.3176 24.5227 18.6078 24.4818 19.518C24.4391 20.4261 24.2951 21.0464 24.0853 21.5891C23.8667 22.1502 23.5751 22.6263 23.1004 23.1006C22.6263 23.5753 22.1509 23.8675 21.5898 24.0855C21.0469 24.2965 20.4261 24.4404 19.5176 24.482C18.6074 24.5234 18.3174 24.5335 15.9997 24.5335C13.6824 24.5335 13.3917 24.5234 12.4815 24.482C11.5732 24.4404 10.9529 24.2965 10.41 24.0855C9.84909 23.8675 9.373 23.5753 8.89886 23.1006C8.42437 22.6263 8.13281 22.1502 7.91467 21.5889C7.70382 21.0464 7.56 20.4263 7.51822 19.5178C7.47698 18.6076 7.46667 18.3176 7.46667 16.0001C7.46667 13.6826 7.47733 13.3915 7.51804 12.4813C7.55893 11.5732 7.70294 10.9529 7.91449 10.4102C8.13316 9.84909 8.42472 9.373 8.89939 8.89868C9.37371 8.42419 9.8498 8.13263 10.4111 7.91467C10.9536 7.70365 11.5737 7.55982 12.4822 7.51822Z\",\n fill: \"#39363A\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.2354 9.00457C15.384 9.00434 15.5439 9.00441 15.7165 9.00449L16.0009 9.00457C18.2793 9.00457 18.5493 9.01275 19.4491 9.05364C20.2811 9.09169 20.7327 9.23071 21.0335 9.34751C21.4317 9.50218 21.7156 9.68707 22.0141 9.98574C22.3128 10.2844 22.4977 10.5689 22.6527 10.9671C22.7695 11.2675 22.9087 11.7191 22.9465 12.5511C22.9874 13.4507 22.9963 13.7209 22.9963 15.9982C22.9963 18.2756 22.9874 18.5458 22.9465 19.4454C22.9085 20.2774 22.7695 20.729 22.6527 21.0294C22.498 21.4276 22.3128 21.7112 22.0141 22.0097C21.7154 22.3084 21.4319 22.4932 21.0335 22.6479C20.733 22.7653 20.2811 22.9039 19.4491 22.942C18.5495 22.9829 18.2793 22.9917 16.0009 22.9917C13.7223 22.9917 13.4522 22.9829 12.5527 22.942C11.7207 22.9036 11.2691 22.7645 10.9681 22.6477C10.5699 22.4931 10.2854 22.3082 9.98677 22.0095C9.6881 21.7108 9.50321 21.4271 9.34819 21.0287C9.23138 20.7283 9.09218 20.2767 9.05432 19.4447C9.01343 18.5451 9.00525 18.2749 9.00525 15.9961C9.00525 13.7173 9.01343 13.4485 9.05432 12.549C9.09236 11.717 9.23138 11.2654 9.34819 10.9646C9.50285 10.5664 9.6881 10.2819 9.98677 9.98325C10.2854 9.68458 10.5699 9.49969 10.9681 9.34467C11.2689 9.22733 11.7207 9.08866 12.5527 9.05044C13.3399 9.01489 13.6449 9.00422 15.2354 9.00244V9.00457ZM20.5557 10.4214C19.9903 10.4214 19.5316 10.8796 19.5316 11.4451C19.5316 12.0104 19.9903 12.4691 20.5557 12.4691C21.121 12.4691 21.5797 12.0104 21.5797 11.4451C21.5797 10.8798 21.121 10.4211 20.5557 10.4211V10.4214ZM11.6184 16C11.6184 13.5799 13.5804 11.6178 16.0005 11.6177C18.4206 11.6177 20.3822 13.5799 20.3822 16C20.3822 18.4201 18.4207 20.3814 16.0006 20.3814C13.5805 20.3814 11.6184 18.4201 11.6184 16Z\",\n fill: \"#39363A\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.0007 13.1558C17.5716 13.1558 18.8452 14.4292 18.8452 16.0002C18.8452 17.5711 17.5716 18.8447 16.0007 18.8447C14.4297 18.8447 13.1562 17.5711 13.1562 16.0002C13.1562 14.4292 14.4297 13.1558 16.0007 13.1558V13.1558Z\",\n fill: \"#39363A\"\n});\n\nfunction SvgInstagramLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInstagramLogo);\nexport default __webpack_public_path__ + \"static/media/Instagram-Logo.c43e1926.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 31.999C24.8366 31.999 32 24.8356 32 15.999C32 7.16247 24.8366 -0.000976562 16 -0.000976562C7.16344 -0.000976562 0 7.16247 0 15.999C0 24.8356 7.16344 31.999 16 31.999Z\",\n fill: \"#39363A\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.5597 17.2873V23.8837H21.7353V17.7294C21.7353 16.1841 21.1831 15.1288 19.7984 15.1288C18.7417 15.1288 18.1139 15.8392 17.8367 16.5272C17.736 16.773 17.71 17.1144 17.71 17.4593V23.8834H13.8853C13.8853 23.8834 13.9366 13.46 13.8853 12.381H17.7103V14.011C17.7026 14.0238 17.6918 14.0364 17.6849 14.0487H17.7103V14.011C18.2186 13.229 19.125 12.1109 21.1571 12.1109C23.6733 12.1109 25.5597 13.7549 25.5597 17.2873ZM9.8843 6.83643C8.57602 6.83643 7.72009 7.69521 7.72009 8.82352C7.72009 9.92787 8.55121 10.8115 9.83411 10.8115H9.85892C11.1929 10.8115 12.0223 9.92787 12.0223 8.82352C11.9969 7.69521 11.1929 6.83643 9.8843 6.83643ZM7.94741 23.8837H11.7707V12.381H7.94741V23.8837Z\",\n fill: \"#EBECEE\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 32,\n height: 32,\n fill: \"white\"\n})));\n\nfunction SvgLinkedinLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLinkedinLogo);\nexport default __webpack_public_path__ + \"static/media/Linkedin-Logo.2d44bc0c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16 0ZM15.5544 13.5586L15.5208 13.005C15.4201 11.5701 16.3042 10.2594 17.7032 9.75098C18.218 9.5702 19.0909 9.5476 19.6617 9.70578C19.8856 9.77357 20.3108 9.99955 20.613 10.2029L21.1614 10.5758L21.7658 10.3837C22.1015 10.282 22.5492 10.1125 22.7506 9.99955C22.9409 9.89786 23.1088 9.84137 23.1088 9.87526C23.1088 10.0673 22.6947 10.7227 22.3477 11.0842C21.8777 11.5927 22.012 11.6379 22.9633 11.2989C23.534 11.1068 23.5452 11.1068 23.4333 11.3215C23.3662 11.4345 23.0192 11.8299 22.6499 12.1915C22.0232 12.8129 21.9896 12.8807 21.9896 13.4005C21.9896 14.2027 21.6091 15.8749 21.2286 16.7901C20.5235 18.5075 19.0126 20.2814 17.5017 21.174C15.3753 22.4281 12.5438 22.7445 10.16 22.0101C9.36538 21.7615 8 21.1288 8 21.0158C8 20.9819 8.41409 20.9367 8.91772 20.9254C9.96973 20.9028 11.0218 20.609 11.9171 20.0893L12.5214 19.7277L11.8276 19.4905C10.8427 19.1515 9.95854 18.3719 9.73471 17.6375C9.66756 17.4002 9.68994 17.3889 10.3167 17.3889L10.9658 17.3776L10.4174 17.1177C9.76828 16.7901 9.17513 16.2364 8.88414 15.6715C8.6715 15.2647 8.4029 14.2366 8.48124 14.1575C8.50362 14.1236 8.73865 14.1914 9.00725 14.2818C9.77948 14.5642 9.8802 14.4964 9.43253 14.0219C8.59316 13.1632 8.33575 11.8864 8.73865 10.6775L8.92891 10.1351L9.66756 10.8695C11.1784 12.3497 12.9579 13.231 14.9948 13.4908L15.5544 13.5586Z\",\n fill: \"#39363A\"\n});\n\nfunction SvgTwitterLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTwitterLogo);\nexport default __webpack_public_path__ + \"static/media/Twitter-Logo.8b350510.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16 0ZM22.6677 10.4996C23.4021 10.7011 23.9804 11.2948 24.1767 12.0488C24.5333 13.4154 24.5333 16.2667 24.5333 16.2667C24.5333 16.2667 24.5333 19.1179 24.1767 20.4845C23.9804 21.2385 23.4021 21.8323 22.6677 22.0339C21.3369 22.4 16 22.4 16 22.4C16 22.4 10.6631 22.4 9.33217 22.0339C8.59782 21.8323 8.01949 21.2385 7.82322 20.4845C7.46667 19.1179 7.46667 16.2667 7.46667 16.2667C7.46667 16.2667 7.46667 13.4154 7.82322 12.0488C8.01949 11.2948 8.59782 10.7011 9.33217 10.4996C10.6631 10.1333 16 10.1333 16 10.1333C16 10.1333 21.3369 10.1333 22.6677 10.4996Z\",\n fill: \"#39363A\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.4 19.2V13.8667L18.6667 16.5335L14.4 19.2Z\",\n fill: \"#39363A\"\n});\n\nfunction SvgYoutubeLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgYoutubeLogo);\nexport default __webpack_public_path__ + \"static/media/Youtube-Logo.eef387af.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react'\nimport styles from './styles'\nimport JasperActiveLogo from '../../../assets/logos/brand/jasperactive-main-logo.svg'\nimport { Typography , useMediaQuery } from '@material-ui/core';\nimport { theme } from '../../../theme'\nimport {ReactComponent as FacebookIcon} from '../../../assets/logos/socialmedia/Facebook-Logo.svg'\nimport {ReactComponent as InstagramIcon} from '../../../assets/logos/socialmedia/Instagram-Logo.svg'\nimport {ReactComponent as LinkedInIcon } from '../../../assets/logos/socialmedia/Linkedin-Logo.svg'\nimport {ReactComponent as TwitterIcon} from '../../../assets/logos/socialmedia/Twitter-Logo.svg'\nimport {ReactComponent as YoutubeIcon} from '../../../assets/logos/socialmedia/Youtube-Logo.svg'\n\n\n\nconst Footer = () => {\n\n const classes = new styles();\n const isMatched = useMediaQuery(theme.breakpoints.down('sm') );\n const isMobile = useMediaQuery( theme.breakpoints.down('xs') );\n return (\n \n )\n}\n\nexport default Footer;\n","import Footer from './Footer';\nexport default Footer;","import {makeStyles} from \"@material-ui/core/styles\"\nimport {theme} from '../../theme'\n\n\nconst styles = makeStyles({\n container:{\n display:\"flex\",\n flexDirection:\"column\"\n \n },\n brandSection:{\n display:\"flex\",\n justifyContent:\"space-evenly\",\n marginTop:theme.spacing(7),\n [theme.breakpoints.down(\"md\")]:{\n flexDirection:\"column\"\n },\n [theme.breakpoints.down(\"sm\")]:{\n flexDirection:\"column\",\n marginTop:theme.spacing(4)\n }\n },\n brandLeft:{\n display:\"flex\",\n flexDirection:\"column\",\n justifyContent:\"space-evenly\",\n width:\"50%\",\n [theme.breakpoints.down(\"md\")]:{\n width:\"100%\"\n }\n },\n brandTitle:{\n fontSize:\"62px\",\n fontWeight:\"500\",\n lineHeight:\"72px\",\n marginBottom:theme.spacing(3),\n color:theme.palette.grey[400],\n [theme.breakpoints.down(\"md\")]:{\n fontSize:\"46px\",\n },\n [theme.breakpoints.down('xs')]:{\n fontSize:\"46px\",\n lineHeight:\"40px\"\n }\n },\n brandDesc:{\n ...theme.typography.h3,\n color:theme.palette.grey[500],\n [theme.breakpoints.down(\"md\")]:{\n fontSize:\"18px\"\n },\n [theme.breakpoints.down(\"xs\")]:{\n ...theme.typography.body2,\n marginTop:theme.spacing(4)\n },\n },\n buttonContainer:{\n display:\"flex\",\n justifyContent:\"flex-start\",\n marginTop:theme.spacing(2)\n },\n exploreButton:{\n fontSize:\"16px\",\n lineHeight:\"24px\",\n backgroundColor:theme.palette.primary.main,\n color:theme.palette.common.white,\n '&:hover':{\n backgroundColor:theme.palette.primary.main\n },\n paddingLeft: theme.spacing(4),\n paddingRight:theme.spacing(4),\n marginRight:'5%',\n [theme.breakpoints.down(\"xs\")]:{\n fontSize:\"13px\",\n lineHeight:\"20px\",\n marginRight:theme.spacing(1),\n color:theme.palette.common.white,\n paddingTop:theme.spacing(1),\n paddingBottom:theme.spacing(1),\n paddingLeft:theme.spacing(2),\n paddingRight:theme.spacing(2)\n },\n },\n requestDemoButton:{\n fontSize:\"16px\",\n lineHeight:\"24px\",\n color:theme.palette.primary.main,\n backgroundColor:theme.palette.common.white,\n border:\"1px solid #BF1212\",\n paddingLeft: theme.spacing(4),\n paddingRight:theme.spacing(4),\n '&:hover':{\n backgroundColor:theme.palette.common.white\n },\n marginRight:\"5%\",\n [theme.breakpoints.down(\"xs\")]:{\n fontSize:\"13px\",\n lineHeight:\"20px\",\n marginRight:\"0px\",\n paddingTop:theme.spacing(1),\n paddingBottom:theme.spacing(1),\n paddingLeft:theme.spacing(2),\n paddingRight:theme.spacing(2)\n },\n },\n bannerImage:{\n width:\"50%\",\n [theme.breakpoints.down(\"md\")]:{\n alignSelf:\"center\"\n },[theme.breakpoints.down(\"sm\")]:{\n width:\"80%\",\n marginTop:theme.spacing(2)\n }\n },\n iconDiv:{\n marginRight:theme.spacing(2),\n display:\"flex\",\n justifyContent:\"center\",\n alignItems:'center',\n '&:hover':{\n cursor:\"pointer\"\n },\n [theme.breakpoints.down('xs')]:{\n display:\"none\"\n }\n }\n})\n\n\nexport default styles;","export default __webpack_public_path__ + \"static/media/homepage-banner.9ddbd375.svg\";","import {makeStyles} from '@material-ui/core/styles'\nimport {theme} from '../../../theme'\n\nconst styles = makeStyles({\n container:{\n display:\"flex\",\n flexDirection:\"column\",\n marginTop:theme.spacing(16)\n },\n title:{\n ...theme.typography.h3,\n fontWeight:600,\n color:theme.palette.grey[400]\n },\n carousel:{\n marginTop:theme.spacing(2),\n height:\"100%\"\n },\n partners:{\n display:\"flex\",\n '&:hover':{\n cursor:\"pointer\"\n }\n }\n})\n\n\nexport default styles;","export default __webpack_public_path__ + \"static/media/certiport-logo.8c439f9c.png\";","export default __webpack_public_path__ + \"static/media/certiport-logo-hover.f20291c2.png\";","export default __webpack_public_path__ + \"static/media/Microsoft-Logo.7d42a0cb.svg\";","export default __webpack_public_path__ + \"static/media/Microsoft-Logo-Hover.aee52bbf.svg\";","export default __webpack_public_path__ + \"static/media/gmetrix-logo-new.7c2b8e80.png\";","export default __webpack_public_path__ + \"static/media/gmetrix-logo-hover.37f26874.svg\";","export default __webpack_public_path__ + \"static/media/Intuit-Logo.060d9690.svg\";","export default __webpack_public_path__ + \"static/media/Intuit-Logo-Hover.eb3a6f62.svg\";","export default __webpack_public_path__ + \"static/media/IC3-Logo.83e2e8a5.svg\";","export default __webpack_public_path__ + \"static/media/IC3-Logo-Hover.05c698b0.svg\";","import { Typography } from '@material-ui/core'\nimport React from 'react'\nimport styles from './styles'\nimport Carousel from 'react-multi-carousel';\nimport 'react-multi-carousel/lib/styles.css'\nimport CertiportLogo from '../../../assets/logos/partners/certiport-logo.png'\nimport CertiportHover from '../../../assets/logos/partners/certiport-logo-hover.png'\nimport MicrosoftLogo from '../../../assets/logos/partners/Microsoft-Logo.svg';\nimport MicrosoftHoverLogo from '../../../assets/logos/partners/Microsoft-Logo-Hover.svg'\nimport GmetrixLogo from '../../../assets/logos/partners/gmetrix-logo-new.png'; \nimport GmetrixHoverLogo from '../../../assets/logos/partners/gmetrix-logo-hover.svg'; \nimport IntuitLogo from '../../../assets/logos/partners/Intuit-Logo.svg';\nimport IntuitHoverLogo from '../../../assets/logos/partners/Intuit-Logo-Hover.svg';\nimport IC3Logo from '../../../assets/logos/partners/IC3-Logo.svg';\nimport IC3HoverLogo from '../../../assets/logos/partners/IC3-Logo-Hover.svg';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport './carouselStyle.css'\n\n\n\nconst Partners = () => {\n\n const classes = new styles();\n\n\n const responsive = {\n desktop: {\n breakpoint: { max: 5000, min: 1280 },\n items: 5,\n slidesToSlide: 1 // optional, default to 1.\n },\n tablet: {\n breakpoint: { max: 1280, min: 960 },\n items: 4\n },\n miniTable:{\n breakpoint: { max: 960, min : 600},\n items:3\n },\n mobile: {\n breakpoint: { max: 600, min: 300 },\n items: 1\n },\n }\n\n const renderPartners = () => {\n let partners = [\n {\n name:\"Certiport\",\n src:CertiportLogo ,\n url:\"https://certiport.pearsonvue.com/\",\n hoverSrc:CertiportHover\n },\n {\n name:\"Microsoft\",\n src:MicrosoftLogo,\n url:\"https://www.microsoft.com/\",\n hoverSrc:MicrosoftHoverLogo\n },\n {\n name:\"Gmetrxi\",\n src:GmetrixLogo,\n url:\"https://www.gmetrix.com/\",\n hoverSrc:GmetrixHoverLogo\n },\n {\n name:\"Intuit\",\n src: IntuitLogo,\n url:\"https://www.intuit.com/\",\n hoverSrc:IntuitHoverLogo\n },\n {\n name:\"Ic3\",\n src:IC3Logo,\n url:\"https://certiport.pearsonvue.com/Certifications/IC3/Digital-Literacy-Certification/Overview.aspx\",\n hoverSrc:IC3HoverLogo\n }\n \n ];\n return partners;\n }\n\n const CustomLeftArrow = ({ onClick, ...rest }) => {\n \n return onClick()} />;\n };\n\n const CustomRightArrow = ({ onClick, ...rest }) => {\n return onClick()} />;\n };\n\n const applyHoverImage = (e, hoverSrc) => {\n e.target.src = hoverSrc\n }\n\n const applyDefaultImage = (e, defaultSrc) => {\n e.target.src = defaultSrc\n }\n\n \n\n return (\n
\n \n Our Partners\n \n }\n className={classes.carousel}\n customLeftArrow={}\n responsive={responsive}\n infinite={true}\n autoPlay={false}\n\n >\n {\n renderPartners().map((partner, i) => {\n return
\n {partner.name}\n { window.open(partner.url, \"_blank\") }}\n onMouseOver={(e) => {applyHoverImage(e, partner.hoverSrc)}}\n onMouseOut={(e) => {applyDefaultImage(e, partner.src)}}\n style={{width:i === 0 || i === 1 ? \"130px\" : i === 4 ? \"150px\" : \"100px\"}}\n />\n
\n })\n }\n \n\n
\n )\n}\n\n\nexport default Partners;\n","import Partners from './Partners';\nexport default Partners;","import {makeStyles} from '@material-ui/core/styles'\nimport {theme} from '../../../theme'\n\n\nconst styles = makeStyles({\n container:{\n display:'flex',\n flexDirection:\"column\",\n marginTop:theme.spacing(16)\n },\n title:{\n ...theme.typography.h3,\n fontWeight:600,\n color:theme.palette.grey[400],\n },\n productContainer:{\n display:\"flex\",\n flexWrap:\"wrap\",\n [theme.breakpoints.down(\"xs\")]:{\n flexDirection:\"column\"\n }\n }\n})\n\n\nexport default styles;\n\n","import {makeStyles} from '@material-ui/core/styles'\nimport {theme} from '../../../../theme'\n \nconst styles = makeStyles({\n cardConatiner:{\n display:\"flex\",\n flexDirection:\"column\",\n justifyContent:\"space-between\",\n minWidth:\"30%\",\n maxWidth:\"30%\",\n minHeight:\"30%\",\n marginRight:\"40px\",\n marginTop:theme.spacing(4),\n '&:hover':{\n cursor:\"pointer\"\n },\n [theme.breakpoints.down(\"md\")]:{\n minWidth:\"45%\",\n maxWidth:\"45%\"\n },[theme.breakpoints.down(\"sm\")]:{\n minWidth:\"43%\",\n maxWidth:\"43%\"\n },[theme.breakpoints.down(\"xs\")]:{\n minWidth:\"100%\",\n maxWidth:\"100%\"\n }\n },\n topContent:{\n display:\"flex\",\n justifyContent:\"flex-start\",\n alignItems:\"center\"\n },\n title:{\n ...theme.typography.h3,\n color:theme.palette.grey[500],\n [theme.breakpoints.down(\"md\")]:{\n fontSize:\"18px\"\n }\n },\n description:{\n ...theme.typography.body1,\n color:theme.palette.grey[400]\n },\n learMore:{\n display:\"flex\",\n justifyContent:\"flex-end\", \n }\n})\n\nexport default styles;","import { Card, CardContent, Typography } from '@material-ui/core';\nimport { useHistory } from 'react-router-dom'\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport React from 'react'\nimport styles from './style'\n\n\n\nconst Product = ({ logo, description, theme, type }) => {\n\n const classes = new styles();\n\n const history = useHistory();\n\n const goToProductDetail = () => {\n history.push(\"/\" + type);\n }\n\n return (\n \n \n \n \n \n \n {description}\n \n \n \n \n LEARN MORE\n \n \n \n \n )\n}\n\n\nexport default Product;\n","export default __webpack_public_path__ + \"static/media/jasperactive-DL-logo.df7779f1.svg\";","export default __webpack_public_path__ + \"static/media/jmos-orange-logo.4b8b18f4.svg\";","export default __webpack_public_path__ + \"static/media/jmos-online-orange-logo.06ed6578.png\";","export default __webpack_public_path__ + \"static/media/jasperactive-QB-logo.2fb64be4.svg\";","export default __webpack_public_path__ + \"static/media/jasperactive_create_adobe.bfa8a0c7.svg\";","import { theme } from '../theme'\nimport JDigitalLiteracy from \"../assets/logos/products/jasperactive-DL-logo.svg\";\nimport JMosOrange from \"../assets/logos/products/jmos-orange-logo.svg\";\nimport JMosOrangeOnline from \"../assets/logos/products/jmos-online-orange-logo.png\";\nimport JQuickBook from \"../assets/logos/products/jasperactive-QB-logo.svg\";\nimport JAdobeCreate from \"../assets/logos/products/jasperactive_create_adobe.svg\";\n\nexport const products = () => {\n let products = [\n {\n logo: JMosOrange,\n title: \"\",\n description: \"Jasperactive for Microsoft Office focuses on the critical thinking and application of learning the Microsoft Office Suite of applications, rather than just learning how to perform functions and accessing features. \",\n theme: theme.palette.secondary.main,\n prodType: \"jmos\"\n },\n {\n logo: JMosOrangeOnline,\n title: \"\",\n description: \"Specifically formulated for certification readiness, Jasperactive MOS Online is web-based learning for Microsoft Office with tailored exercises for Word, Excel, and PowerPoint Office 365 web applications. \",\n theme: theme.palette.secondary.main,\n prodType: \"jmosonline\"\n },\n {\n logo: JDigitalLiteracy,\n title: \"Jasperactive Digital Literacy\",\n description: \"Mapped to the IC3 GS6 Global Standard, CCI Learning’s world-class digital literacy courseware comes to life in Jasperactive. \",\n theme: theme.palette.product.digitalLiteracy,\n prodType: \"jdl\"\n },\n {\n logo: JQuickBook,\n title: \"Jasperactive QuickBooks \",\n description: \"The perfect addition to any Accounting/Business program, this course of Jasperactive QuickBooks covers all exam objectives for Certiport's QuickBooks Certified User certification.\",\n theme: theme.palette.product.quickbooks,\n prodType: \"jqb\"\n },\n {\n logo: JAdobeCreate,\n title: \"Jasperactive Adobe Create\",\n description: \"Jasperactive Create For Adobe is a learning and validation system mapped to the Adobe Certified Professional certification objectives that help learners build the skills and confidence to meet the demands of the design industry.\",\n theme: theme.palette.product.adobeCreate,\n prodType: \"jac\"\n }\n ];\n return products;\n}","import Products from './Products';\nexport default Products;","import { Typography } from '@material-ui/core';\nimport React from 'react'\nimport styles from './styles'\nimport Product from './Product/Product'\nimport {products} from '../../../lib/productsData'\n\n\nconst Products = () => {\n\n const classes = new styles();\n\n return (\n
\n \n Our Products\n \n
\n {products().map((product, i) => {\n return \n })}\n
\n
\n )\n}\n\n\nexport default Products;\n","import {makeStyles} from '@material-ui/core/styles'\nimport {theme} from '../../../theme'\n\nconst styles = makeStyles({\n container:{\n display:\"flex\",\n flexDirection:\"column\",\n marginTop:theme.spacing(16)\n \n },\n title:{\n ...theme.typography.h3,\n fontWeight:600,\n color:theme.palette.grey[400],\n marginBottom:theme.spacing(2)\n },\n pathContainer:{\n display:\"flex\",\n justifyContent:\"space-between\",\n [theme.breakpoints.down('xs')]:{\n flexDirection:\"column\"\n }\n }\n})\n\n\nexport default styles;","import {makeStyles} from '@material-ui/core/styles'\nimport {theme} from '../../../../theme'\n\n\nconst styles = makeStyles({\n container:{\n display:\"flex\",\n flexDirection:\"column\",\n alignItems:\"center\",\n maxWidth:\"15%\",\n minHeight:\"15%\",\n padding:theme.spacing(2),\n [theme.breakpoints.down(\"md\")]:{\n minWidth:\"18%\",\n maxWidth:\"18%\"\n },\n [theme.breakpoints.down(\"xs\")]:{\n minWidth:\"100%\",\n maxWidth:\"100%\"\n },\n },\n title:{\n ...theme.typography.h4,\n marginTop:theme.spacing(1),\n marginRight:\"0px\",\n marginBottom:theme.spacing(3),\n marginLeft:\"0px\",\n fontWeight:\"500\"\n },\n description:{\n ...theme.typography.body1,\n color:theme.palette.grey[400]\n }\n})\n\n\nexport default styles;","import IndividualPathway from './IndividualPathway'\nexport default IndividualPathway;","import { Paper, Typography } from '@material-ui/core';\nimport React from 'react'\nimport styles from './styles'\n\nconst IndividualPathway = ({logo, title, description}) => {\n\n const classes = new styles();\n\n return (\n \n {title}\n\n \n {title}\n \n \n {description}\n \n \n )\n}\n\n\nexport default IndividualPathway;\n","export default __webpack_public_path__ + \"static/media/benchmark-icon.1d2990a9.svg\";","export default __webpack_public_path__ + \"static/media/learn-icon.77602e37.svg\";","export default __webpack_public_path__ + \"static/media/practice-icon.8dff0758.svg\";","export default __webpack_public_path__ + \"static/media/create-icon.e51b5020.svg\";","export default __webpack_public_path__ + \"static/media/final-assessment-icon.b2d63161.svg\";","import LearningPathway from './LearningPathway'\nexport default LearningPathway; ","import { Typography, useMediaQuery,useTheme } from '@material-ui/core';\nimport React from 'react'\nimport styles from './styles'\nimport IndividualPathway from './IndividualPathway'\nimport BenchmarkLogo from '../../../assets/logos/learningpathway/benchmark-icon.svg'\nimport LearnLogo from '../../../assets/logos/learningpathway/learn-icon.svg'\nimport PracticeLogo from '../../../assets/logos/learningpathway/practice-icon.svg'\nimport CreateLogo from '../../../assets/logos/learningpathway/create-icon.svg'\nimport FinalAssessmentLogo from '../../../assets/logos/learningpathway/final-assessment-icon.svg'\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';\n\nconst LearningPathway = () => {\n\n const classes = new styles();\n const theme = useTheme();\n const isMatched = useMediaQuery(theme.breakpoints.down('xs'));\n\n const renderpathwayData = () => {\n let data = [\n {\n logo:BenchmarkLogo,\n title:\"BENCHMARK\",\n description:\"The Benchmark assesses skill levels and builds a prescribed course plan using only the specific lessons required.\"\n },\n {\n logo:LearnLogo,\n title:\"LEARN\",\n description:\"Learners begin with a pre-Lesson Quiz, then begin step-by-step instructional hands-on learning excercises along with access to an eBook.\"\n },\n {\n logo:PracticeLogo,\n title:\"PRACTICE\",\n description:\"A chance to repeat Learn exercises for additional attempts and to perfect skills. Practice is also an excellent remediation option.\",\n },\n {\n logo:CreateLogo,\n title:\"CREATE\",\n description:\"A project-based exercise to combine skills and creativity. A standalone document is uploaded and scanned by Jasperactive to validate required project specifications.\"\n },\n {\n logo:FinalAssessmentLogo,\n title:\"SUMMARY ASSESSMENT\",\n description:\"After learning, Jasperactive provides a practice exam to validate learning and to measure certification readiness.\"\n }\n ];\n return data;\n }\n\n return (\n
\n \n Our Learning Pathway\n \n
\n {renderpathwayData().map((data, i) => { \n return \n \n {renderpathwayData().length - 1 !== i ? \n isMatched ? : \n \n : \"\"}\n \n\n \n })} \n
\n
\n )\n}\n\nexport default LearningPathway;\n","import {makeStyles} from '@material-ui/core/styles'\nimport {theme} from '../../../theme'\n\nconst styles = makeStyles({\n container:{\n display:\"flex\",\n flexDirection:\"column\",\n marginTop:theme.spacing(16),\n\n },\n headingSection:{\n display:\"flex\",\n marginBottom:theme.spacing(3),\n alignItems:\"center\"\n\n },\n heading:{\n fontSize:\"54px\",\n lineHeight:\"64px\",\n marginLeft:theme.spacing(3),\n color:theme.palette.grey[400],\n fontWeight:\"600\",\n [theme.breakpoints.down('xs')]:{\n fontSize:\"24px\",\n lineHeight:\"30px\"\n }\n },\n testimonialSection:{\n display:\"flex\",\n marginTop:theme.spacing(3),\n marginBottom:theme.spacing(3),\n [theme.breakpoints.down('xs')]:{\n flexDirection:\"column\"\n }\n },\n individualTestimonial:{\n display:\"flex\",\n flexDirection:\"column\",\n justifyContent:\"space-between\",\n maxWidth:\"25%\",\n padding:\"16px\",\n marginRight:theme.spacing(1),\n [theme.breakpoints.down('xs')]:{\n maxWidth:\"100%\",\n marginTop:theme.spacing(1),\n marginBottom:theme.spacing(1)\n }\n \n },\n review:{\n ...theme.typography.subtitle2,\n marginBottom:theme.spacing(3),\n fontStyle:\"italic\"\n },\n reviewBy:{\n ...theme.typography.subtitle1\n }\n})\n\nexport default styles;","export default __webpack_public_path__ + \"static/media/testimonials-heart-icon.6ea6d88d.svg\";","import Testimonials from './Testimonials'\nexport default Testimonials;","import React from 'react'\nimport styles from './style'\nimport HeartIcon from '../../../assets/logos/testimonials/testimonials-heart-icon.svg'\nimport { Paper, Typography } from '@material-ui/core';\n\nconst Testimonials = () => {\n\n const classes = new styles();\n\n const renderTestimonials = () => {\n let testimonials = [\n {\n review:\"“Our learners evidence a high MOS certification success rate subsequent of Jasperactive learning. Jasperactive enables our learners and alumni to keep current of MOS knowledge and skills whilst pursing post-secondary credentialing or pursuing exciting business careers with leading organizations.”\",\n by:\"- David Warner, Southern Alberta Institute of Technology (SAIT), Alberta, Canada\"\n },\n {\n review:\"“I wanted you to know how excited I am about Jasperactive, I love it and my students do too. I have a 91% passing rate in one class. We have never had this passing rate so early in the semester. Our Director of Schools has heard of our success and has sent a message of congratulations. Jasperactive has made my life so much easier, and students are learning so much as they train.”\",\n by:\"- Joe Bryan, Walker Valley High School, Tennessee, USA\"\n },\n {\n review:\"“Jasperactive has provided my students with an interactive interface to learn all the different functionalities of the Microsoft Office Suite Software. Jasperactive also assists me with grading the students' lessons and provides detailed reports on their progress for each software.”\",\n by:\"- Jerry Chen, Ècole Cariboo Hill Secondary School, British Columbia, Canada\"\n },\n {\n review:\"“Jasperactive truly spoils me as a teacher. My 8th grade students love receiving digital badges as it creates good fun for them! I need to lock my renewal in for multiple years because I can’t lose this program.”\",\n by:\"- Brenda Gilliland, Concordia High School, Kansas, USA\"\n }\n ]\n return testimonials;\n }\n\n return (\n
\n
\n \"heartIcon\"\n\n \n Our customers all over the globe are loving Jasperactive.\n \n
\n
\n {renderTestimonials().map((value, i) => {\n return \n \n {value.review}\n \n \n {value.by}\n \n \n })}\n
\n
\n )\n}\n\n\nexport default Testimonials;","export default __webpack_public_path__ + \"static/media/down-arrow-icon.d052b753.svg\";","import { makeStyles } from '@material-ui/core/styles'\n\nconst styles = makeStyles({\n container: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"100%\",\n minHeight: \"90vh\"\n }\n})\n\nexport default styles;","import Loading from './Loading';\nexport default Loading;","import React from \"react\";\nimport { Box, CircularProgress, Typography } from \"@material-ui/core\";\nimport styles from \"./styles\";\n\nconst Loading = ({ message }) => {\n const classes = new styles();\n return (\n \n \n \n \n {message ? message : \"Loading, please wait...\"}\n \n \n \n );\n};\n\nexport default Loading;","import Home from './Home'\nexport default Home;","import { Button, Typography } from '@material-ui/core'\nimport React, { useEffect, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport styles from './styles'\nimport Banner from '../../assets/banner/homepage-banner.svg'\nimport Partners from '../Home/Partners'\nimport Products from '../Home/Products'\nimport LearningPathway from '../Home/LearningPathway'\nimport Testimonials from './Testimonials'\nimport DownArrow from '../../assets/other/down-arrow-icon.svg'\nimport { useAuthentication } from \"../../providers/AuthenticationProvider\";\nimport { scroller } from 'react-scroll'\nimport axios from 'axios'\nimport { Loading } from \"../ui\";\n\nconst Home = () => {\n const classes = new styles();\n const { user } = useAuthentication();\n const [loading, setLoading] = useState(true);\n const [isSubscribed, setIsSubscribed] = useState(false);\n const history = useHistory();\n\n useEffect(() => {\n if (user) {\n axios.get(`/Home/GetProducts/${window.location.hostname}`).then(response => {\n let data = response.data;\n let role = data.role;\n\n if ((role === \"Instructor\" && data.teacherProducts.length === 0) || (role === \"Student\" && data.studentProducts.length === 0)) {\n setIsSubscribed(false);\n } else {\n setIsSubscribed(true);\n }\n }).catch(error => {\n console.error(error);\n }).then(() => setLoading(false));\n } else {\n setLoading(false);\n }\n }, [user])\n\n const goToproducts = () => {\n scroller.scrollTo('products', {\n smooth: true,\n })\n }\n\n const goToContactUs = () => {\n history.push({\n pathname: \"/pricing\",\n hash: \"contactus\"\n });\n }\n\n\n if (loading) {\n return \n } else\n return (\n
\n
\n
\n \n What is Jasperactive?\n \n \n Jasperactive by CCI Learning is a cutting-edge learning system, hosted on Microsoft Azure that teaches learners various fundamental skills in technology, such as basics of using computers and the internet, business accounting, and for Microsoft is delivered through the Microsoft Office suite of applications.\n

The purpose of Jasperactive is to give learners a tool applicable to all learning styles that is kinesthetic and can be accessed anywhere and provides the freedom to learn at any pace.\n
\n
\n \n {!isSubscribed ?\n \n : \"\"}\n
\n \n
\n
\n
\n \n
\n \n \n \n \n
\n )\n}\n\n\nexport default Home;\n","import { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\n\nconst styles = makeStyles({\n container:{\n display:\"flex\",\n flexDirection:\"column\",\n marginTop:theme.spacing(2)\n },\n question:{\n ...theme.typography.h4,\n color:theme.palette.common.black,\n fontWeight:500\n },\n answer:{\n ...theme.typography.body1,\n color:theme.palette.common.black\n }\n \n})\n\n\nexport default styles;","import FAQ from './FAQ';\nexport default FAQ;","import { Typography } from \"@material-ui/core\";\nimport React, { useState } from \"react\";\nimport styles from \"./styles\";\nimport { Collapse } from \"@material-ui/core\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\nimport ArrowDropUpIcon from \"@material-ui/icons/ArrowDropUp\";\nimport parse from \"html-react-parser\";\n\nconst FAQ = ({\n number,\n question,\n answer,\n answers,\n img,\n id,\n answerwithlogo,\n handleFAQ,\n showFAQ\n}) => {\n const classes = styles();\n const [showAnswer, setshowAnswer] = useState(false);\n\n const handlesetShow = () => {\n setshowAnswer(!showAnswer);\n }\n\n return (\n
\n
\n
\n \n {number} {question}\n \n {showAnswer ? (\n \n ) : (\n \n )}\n
\n \n {answer !== undefined ? (\n {parse(answer)}\n ) : (\n \"\"\n )}\n {answers !== undefined ? (\n
    \n {answers.map((indianswer, index) => {\n return
  • {parse(indianswer)}
  • ;\n })}\n
\n ) : (\n \"\"\n )}\n {img !== undefined ? (\n \"jmosonline\"\n ) : (\n \"\"\n )}\n {answerwithlogo !== undefined ? (\n
    \n {answerwithlogo.map((data, index) => {\n return (\n \n
    \n \"logo\"\n {data.title}\n
    \n \n );\n })}\n
\n ) : (\n \"\"\n )}\n
\n
\n
\n );\n};\n\nexport default FAQ;\n","import { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\n\nconst styles = makeStyles({\n container: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-evenly\",\n marginTop: theme.spacing(7),\n },\n topcontainer: {\n display: \"flex\",\n flex: 1,\n [theme.breakpoints.down(\"sm\")]: {\n flexDirection: \"column\",\n },\n },\n videoSection: {\n [theme.breakpoints.down(\"sm\")]: {\n width: \"100%\",\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(2),\n },\n },\n topLeftcontainer: {\n display: \"flex\",\n flexDirection: \"column\",\n flex: 1,\n [theme.breakpoints.down(\"sm\")]: {\n width: \"100%\",\n marginBottom: theme.spacing(1),\n },\n },\n logoSection: {\n display: \"flex\",\n marginBottom: theme.spacing(3),\n [theme.breakpoints.down(\"xs\")]: {\n justifyContent: \"center\",\n },\n },\n title: {\n fontSize: \"40px\",\n lineHeight: \"77px\",\n color: theme.palette.grey[400],\n [theme.breakpoints.down(\"xs\")]: {\n fontSize: \"32px\",\n lineHeight: \"40px\",\n },\n },\n description: {\n ...theme.typography.h3,\n color: theme.palette.grey[500],\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n [theme.breakpoints.down(\"xs\")]: {\n fontSize: \"18px\",\n },\n },\n buttonSection: {\n display: \"flex\",\n marginTop: theme.spacing(2),\n justifyContent: \"flex-start\",\n },\n goToButton: {\n fontSize: \"16px\",\n lineHeight: \"24px\",\n color: theme.palette.grey[100],\n minWidth: \"30%\",\n marginRight: theme.spacing(2),\n \"&:hover\": {\n backgroundColor: theme.palette.primary.main,\n },\n [theme.breakpoints.down(\"xs\")]: {\n fontSize: \"16px\",\n lineHeight: \"20px\",\n },\n },\n requestDemoButton: {\n fontSize: \"16px\",\n lineHeight: \"24px\",\n backgroundColor: theme.palette.common.white,\n minWidth: \"30%\",\n marginRight: theme.spacing(2),\n \"&:hover\": {\n backgroundColor: theme.palette.common.white,\n },\n },\n arrow: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"&:hover\": {\n cursor: \"pointer\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n display: \"none\",\n },\n },\n productPartnerSection: {\n marginTop: theme.spacing(16),\n display: \"flex\",\n [theme.breakpoints.down(\"xs\")]: {\n flexDirection: \"column\",\n },\n },\n productPartnerTitle: {\n ...theme.typography.h3,\n fontWeight: 600,\n color: theme.palette.grey[400],\n marginRight: theme.spacing(2),\n },\n courseSection: {\n display: \"flex\",\n flexDirection: \"column\",\n marginTop: theme.spacing(16),\n },\n availableCourse: {\n ...theme.typography.h3,\n fontWeight: 600,\n //marginBottom: theme.spacing(4),\n color: theme.palette.grey[400],\n },\n courses: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n flexWrap: \"wrap\",\n [theme.breakpoints.down(\"sm\")]: {\n alignItems: \"center\",\n justifyContent: \"space-between\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n flexDirection: \"column\",\n alignItems: \"center\",\n },\n },\n individualCourse: {\n display: \"flex\",\n flexDirection: \"column\",\n minWidth: \"23%\",\n maxWidth: \"25%\",\n marginTop: theme.spacing(4),\n marginRight: theme.spacing(3),\n alignItems: \"center\",\n [theme.breakpoints.down(\"sm\")]: {\n maxWidth: \"45%\",\n minWidth: \"45%\",\n marginRight: \"0px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n maxWidth: \"80%\",\n minWidth: \"80%\",\n marginRight: \"0px\",\n },\n },\n coversLists: {\n display: \"flex\",\n flexDirection: \"column\",\n },\n courseTitle: {\n ...theme.typography.h4,\n fontWeight: 500,\n color: theme.palette.grey[500],\n },\n coversTitle: {\n ...theme.typography.subtitle1,\n fontWeight: 500,\n color: theme.palette.grey[500],\n },\n faqSection:{\n display:\"flex\",\n flexDirection:\"column\",\n marginTop:theme.spacing(16)\n },\n faqTitle: {\n ...theme.typography.h2,\n color: theme.palette.grey[400],\n marginBottom:theme.spacing(2)\n },\n otherProductsSection: {\n display: \"flex\",\n flexDirection: \"column\",\n marginTop: theme.spacing(16),\n },\n otherProductTitle: {\n ...theme.typography.h3,\n fontWeight: 600,\n color: theme.palette.grey[400],\n },\n otherProductSection: {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n [theme.breakpoints.down(\"xm\")]: {\n flexDirection: \"column\",\n },\n },\n resources_jac: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: '2em',\n gap: '1.5em'\n },\n resources_jac_courses: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n flexWrap: 'wrap',\n gap: '1.5em'\n },\n resources_jac_card: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n [theme.breakpoints.down(\"xs\")]: {\n maxWidth: \"100%\",\n minWidth: \"100%\",\n marginRight: \"0px\",\n },\n },\n resources_jac_card_content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1em',\n width: '100%'\n },\n});\n\nexport default styles;\n","export default __webpack_public_path__ + \"static/media/Microsoft-Logo-Partner.599c276f.svg\";","export default __webpack_public_path__ + \"static/media/IC3-Logo-Partner.dd440fda.svg\";","export default __webpack_public_path__ + \"static/media/Intuit-QB-Logo-Partner.0594af45.svg\";","export default __webpack_public_path__ + \"static/media/ms-word-icon.2403a9f5.svg\";","export default __webpack_public_path__ + \"static/media/ms-excel-icon.dc0548b1.svg\";","export default __webpack_public_path__ + \"static/media/ms-ppt-icon.1ac2ddb7.svg\";","export default __webpack_public_path__ + \"static/media/ms-access-icon.2b1f1cac.svg\";","export default __webpack_public_path__ + \"static/media/ms-outlook-icon.d73c6999.svg\";","export default __webpack_public_path__ + \"static/media/jasperactive-QB-course-Logo.a5ad3c83.svg\";","export default __webpack_public_path__ + \"static/media/L1.f0105bd2.svg\";","export default __webpack_public_path__ + \"static/media/L2.a90fe491.svg\";","export default __webpack_public_path__ + \"static/media/L3.25881be3.svg\";","export default __webpack_public_path__ + \"static/media/Adobe_InDesign_Icon.ab55bd00.svg\";","export default __webpack_public_path__ + \"static/media/Adobe_Photoshop_Icon.38a42a1e.svg\";","export default __webpack_public_path__ + \"static/media/JAMOSO-Exercise-Table.b38ffe35.png\";","export default __webpack_public_path__ + \"static/media/not-attempted.0b70c255.svg\";","export default __webpack_public_path__ + \"static/media/incomplete.c40c598f.svg\";","import Jmosonline from \"../assets/other/JAMOSO-Exercise-Table.png\";\nimport NotAttempted from \"../assets/other/not-attempted.svg\";\nimport Incomplete from \"../assets/other/incomplete.svg\";\nimport Circle from \"../assets/other/circle-green.png\";\nconst getFAQs = () => {\n const data = [\n {\n number: \"1.\",\n question: \"What is Jasperactive MOS Online?\",\n answer:\n \"Jasperactive MOS Online (or JMOSO) is a kinesthetic prescriptive learning product for Microsoft 365 that includes assessments, a project, and instructional learning for the student as well as auto-grading, teacher resources, and teacher reporting, accessed as a Microsoft Office Add-in from the Office Store.\",\n },\n {\n number: \"2.\",\n question: \"How do I access Jasperactive MOS Online?\",\n answer:\n \"Jasperactive MOS Online is an add-in found directly in the Office 365 web app. You can access the app by logging into Office 365, using one of the add-in methods (first time only), and then clicking on the orange Jasperactive logo on the Home ribbon. See our support article for step-by-step instructions. Launching Jasperactive MOS Online in a web browser.\",\n },\n {\n number: \"3.\",\n question:\n \"Are Jasperactive MOS Online (JMOSO) and Jasperactive MOS (JMOS) the same thing and interchangeable?\",\n answer:\n \"These two systems run on different databases and therefore are not interchangeable. As such, as a Teacher, you would launch JMOSO only as a student begins a particular Course from the beginning – i.e. a student would not transition from JMOS to JMOSO during course learning.\",\n },\n {\n number: \"4.\",\n question: \"How do I gain access to Jasperactive MOS Online (JMOSO)?\",\n answers: [\n \"FREE for existing customers with an “active” JMOS license, for the duration of the license.\",\n \"Purchase\",\n ],\n },\n {\n number: \"5.\",\n question: \"How do I use Jasperactive MOS Online (JMOSO) on my computer?\",\n answers: [\n \"Navigate to www.office.com\",\n \"Sign in with either your Microsoft Account or Microsoft 365 Work/Student account\",\n \"On the left-hand side of the screen, select the Office application that you’re going to be learning (I.e. Word, Excel or PowerPoint)\",\n \"Open a Blank document, Spreadsheet or PowerPoint presentation\",\n \"Click Insert, click Add-ins, then search the Microsoft Store for Jasperactive\",\n \"Optionally, work with your IT team for Organizational Deployment via Microsoft 365 which installs the add-ins automatically\",\n ],\n },\n {\n number: \"6.\",\n question: \"Is there a support site for Jasperactive MOS Online (JMOSO)?\",\n answer:\n \"https://support.jasperactive.com\",\n },\n {\n number: \"7.\",\n question: \"What Microsoft accounts give me access to Office 365?\",\n answer:\n \"Either a personal Microsoft account or Microsoft 365 (formerly Office 365) Work/Student account will provide you access to the Web Browser versions of the Office applications\",\n },\n {\n number: \"8.\",\n question:\n \"What programs are available for learning in Jasperactive MOS Online (JMOSO)?\",\n answers: [\n \"Word, Excel and PowerPoint are currently available.\",\n \"Expert Levels for Word and Excel are due for release by the end of 2020.\",\n ],\n },\n {\n number: \"9.\",\n question:\n \"What languages is Jasperactive MOS Online (JMOSO) available in?\",\n answers: [\"English\", \"Spanish language is in development.\"],\n },\n {\n number: \"10.\",\n question:\n \"How can I log into the Jasperactive MOS Online (JMOSO) program?\",\n answers: [\n \"Once the selected Jasperactive Add-in has been installed into the Office applications ribbon, click on it to launch the Jasperactive application.\",\n \"You will then be prompted to Get Started, click on the Get Started button and a dialog box will open prompting you to Register/Login.\",\n \"If you have not previously created an account, you can do so here by selecting Register Here OR use your Microsoft, Facebook or Google Plus accounts for single sign on.\",\n \"Microsoft 365 single sign is currently in development\",\n ],\n },\n {\n number: \"11.\",\n question: \"Do I have to take the Benchmark Assessment?\",\n answers: [\n \"To activate the Lessons, you do have to complete the Benchmark. Completing the Benchmark creates a prescriptive learning pathway that only includes the Lessons for which learning is required. Note: for those wishing to “bypass” this required element, instruct your student to launch the Benchmark then just click Skip All then Finish to submit results.\",\n \"Teachers can alter the Benchmark grade weighting from the Groups Manager dashboard\",\n ],\n },\n {\n number: \"12.\",\n question: \"How long is the Benchmark?\",\n answers: [\n \"The Benchmark in JMOSO defaults to a 30-minute timer to complete before it closes and prompts you to click the Finish button for scoring.\",\n \"Teachers can alter the Benchmark time from the Groups Manager dashboard\",\n ],\n },\n {\n number: \"13.\",\n question: \"Can the Benchmark be reset and retaken?\",\n answer:\n \"Yes. A Teacher can “reset” a Benchmark from the Teacher Panel Groups Manager dashboard\",\n },\n {\n number: \"14.\",\n question: \"Do I have to take the Lessons in order?\",\n answer:\n \"No. The Lessons are not numbered for that reason and do not require one lesson to be completed before the next is started. You can enter any Lesson you would like to complete in whatever order you would like to complete it. It is recommended that you start at the top and go through them in order as they are scaffolded for learning.\",\n },\n {\n number: \"15.\",\n question:\n \"What if the suggested time for a Lesson is longer than my class session?\",\n answer:\n \"Lessons are broken into Exercises and Tasks, which can be finished in less time.\",\n img: Jmosonline,\n },\n {\n number: \"16.\",\n question: \"Does JMOSO track student progress?\",\n answer:\n \"Yes. The teacher resources include a Teachers Resource Guide, Lesson Notes, Mapping for Basic and Advanced Exercises, Course Mapping to Certification Objectives, a set of student files, a set of completed files, and a sample syllabus. These can be found in the Teacher Panel.\",\n },\n {\n number: \"17.\",\n question: \"How do I know if I completed the exercise correctly?\",\n answers:[\"Each exercise has a circle to the left of the exercise name to indicate the level of correctness.\"],\n answerswithlogo: [\n {\n img: NotAttempted,\n title: \"Not yet attempted\",\n },\n {\n img: Incomplete,\n title:\"Incomplete – some of the tasks in the exercise were not completed or incorrectly completed.\"\n },\n {\n img: Circle ,\n title:\"Completed correctly\"\n },\n ],\n },\n {\n number: \"18.\",\n question: \"How do I know the Lesson is completed?\",\n answer:\n \"The individual lesson exercise indicator will show a filled green dot.\",\n },\n {\n number: \"19.\",\n question: \"Can Lessons be retaken for a better score?\",\n answer: \"Yes, simply enter the Lessons and redo the exercises.\",\n },\n {\n number: \"20.\",\n question: \"What is a Basic exercise vs. an Advanced exercise?\",\n answers: [\n \"Exercises are created differently based on the commands that are available in the O365 web application. Not all commands exist in the O365 web app that are needed to teach to the certification exam.\",\n \"Basic exercises are exercises that are done live in the web-based application (LITA)\",\n \"Advanced exercises are click-through interactive exercises that are completed within the application and cannot be duplicated in the Benchmark, Create Project nor the Summary Assessment because the command does not actually exist in the O365 web app.\",\n ],\n },\n {\n number: \"21.\",\n question: \"Do I have to complete the Create Project?\",\n answer:\n \"No, it is supplementary learning but does cover valuable certification exam objectives and is recommended.\",\n },\n {\n number: \"22.\",\n question: \"What is the Create Project?\",\n answers: [\n \"A project that is embedded in the JMOSO program that comes with a predetermined scenario and tracks specific skills (measures content mastery) used to create the document. It is designed as a creativity-based project to demonstrate/apply what has been learned. The Create document can be completed on or offline and then uploaded for automatic system grading.\",\n \"If desired, the Create Project scenario can be customized by the teacher.\",\n ],\n },\n {\n number: \"23.\",\n question: \"What is the Summary Assessment?\",\n answer:\n \"The Summary Assessment assesses the skills the student has learned that exists in the O365 web app. For commands that do not exist in the O365 web app, students demonstrate mastery by completing Advanced, interactive exercises within the Lessons. The Summary Assessment allows the Learning Pathway to be measured.\",\n },\n {\n number: \"24.\",\n question: \"Is there a launch price/discount?\",\n answer:\n \"Yes. Please contact your reseller.\",\n },\n {\n number: \"25.\",\n question:\n \"How much total learning time should I estimate for Course completion?\",\n answer: \"Approximately 10 –15 hours. See here\",\n },\n {\n number: \"26.\",\n question:\n \"If students do not have enough knowledge just from following the steps how else can they learn?\",\n answer:\n \"There is an eBook embedded at the beginning of every lesson. When you click on the eBook button it will auto-scroll you to the appropriate section.\",\n },\n {\n number: \"27.\",\n question: \"What are your Accommodations for students with disabilities?\",\n answers: [\n \"The Immersive Reader can be added as a Chrome extension which has many sources to help dyslexic and other students who struggle reading. Additionally, if you are using Edge you can click the ellipses (…) in the upper right corner and choose Read Aloud to have the text read to them.\",\n \"Teachers can alter the Benchmark and Summary Assessment time from the Groups Manager dashboard.\",\n ],\n },\n {\n number: \"28.\",\n question:\n \"Are there Teacher Resources available to aid in teaching these courses?\",\n answer:\n \"Yes. The teacher resources include a Teachers Resource Guide, Lesson Notes, Mapping for Basic and Advanced Exercises, Course Mapping to Certification Objectives, a set of student files, a set of completed files, and a sample syllabus. These can be found in the Teacher Panel.\",\n },\n {\n number: \"29.\",\n question: \"How do my students run a report to see their progress?\",\n answer:\n \"Student Course progress reporting, by the Student, is not yet available. At this time, if a student needs this information, a Teacher can run student data reports from their Teacher Panel, export the report, then filter and distribute the data appropriately.\",\n },\n {\n number: \"30.\",\n question:\n \"Where is my Jasperactive icon in PowerPoint? I do not see it on the ribbon.\",\n answer:\n \"The JMOSO program icon to activate the JMOSO program pane is only found on the Home tab. In PowerPoint web app there are too many commands on the ribbon for the JMOSO icon to be visible. Use the ellipses (…) at the far-right side of the pane to show more commands and you will see the JMOSO program icon at the bottom.\",\n },\n {\n number: \"31.\",\n question:\n \"Where are the pre-Lesson Quizzes that students had to complete in the traditional Jasperactive system?\",\n answer:\n \"Quiz activities are not currently available. If this is important to you, simply email feedback@jasperactive.com or use the Feedback option in the Web app located at the bottom of the Jasperactive Getting Started pane.\",\n },\n {\n number: \"32.\",\n question:\n \"Why does the START or ENTER button not work or why does it just spin when I click it?\",\n answer:\n \"You may have timed out. Refresh your browser or close the program you are in and launch it again, forcing a new login to Jasperactive.\",\n },\n {\n number: \"33.\",\n question: \"What are the bandwidth requirements?\",\n answer:\n \"Minimum bandwidth requirements would be 512 Kb/s per machine, although higher speeds are recommended.\",\n },\n ];\n return data;\n};\n\nexport default getFAQs;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAPZQTFRFAAAAB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sHB8sH/08L0AAAAFJ0Uk5TAEOv4/z636k0DbPocS4SFDN776MJ1aEOaWgMFbjDA17u/+1aBb2VW/v+UywI6g+aiVBFjXYbinQe+EhMzwR/QDwg9CM93TrOgRYGP2NkrILQgAbAWmoAAADESURBVHicRY/pFoEAEEaHNhLSioRshciuZMsu+/u/jMrS/TXfPTPnzAfgEYkiKIYTMfgQJxNUMpWmMwzLBZkXxHhWEHJ5qSD7hhSKpbLiUanW6g3vPiGqmhLQbElMG6KU3lG+lLtGD5CkqvzpD3hAU8NQjMYYYOlJKKamBTjdD8XMngORWeC/jHDsEmKMtLI+WVs7my0AW6jtgp39QT+evE85uX52L9fbxXWOd9cvwzUYYzA2bXbzcL992z0es56vrT+/AWmnHlh+CcWiAAAAAElFTkSuQmCC\"","export default __webpack_public_path__ + \"static/media/windows-button-logo.800a012f.svg\";","export default __webpack_public_path__ + \"static/media/apple-button-logo.39ccb264.svg\";","export default __webpack_public_path__ + \"static/media/jasperactive-ac-icon.0aa2fc7c.svg\";","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Box, Button, Dialog, DialogContent, IconButton, Typography } from '@material-ui/core';\nimport { theme } from \"../../theme\";\nimport WindowsButtonIcon from '../../assets/other/windows-button-logo.svg';\nimport AppleButtonIcon from '../../assets/other/apple-button-logo.svg';\nimport CloseIcon from '@material-ui/icons/Close';\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\nimport JACIcon from '../../assets/logos/products/jasperactive-ac-icon.svg';\n\nconst useStyles = makeStyles({\n dialog: {\n borderTop: `4px solid ${theme.palette.product.adobeCreate}`,\n },\n textBox: {\n display: \"flex\",\n [theme.breakpoints.up('xs')]: {\n flexDirection: \"row\",\n justifyContent: \"space-around\",\n alignItems: \"center\",\n },\n [theme.breakpoints.down('xs')]: {\n flexDirection: \"column\",\n justifyContent: \"space-around\",\n alignItems: \"center\",\n },\n },\n text: {\n [theme.breakpoints.up('xs')]: {\n marginLeft: theme.spacing(2),\n },\n },\n buttonBox: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-around\",\n alignItems: \"center\",\n height: \"100px\",\n marginTop: theme.spacing(4),\n marginBottom: theme.spacing(4)\n },\n button: {\n borderColor: theme.palette.product.adobeCreate\n },\n});\n\nconst styles = (theme) => ({\n root: {\n margin: 0,\n padding: theme.spacing(2),\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500],\n },\n});\n\nconst DialogTitle = withStyles(styles)(({ children, classes, onClose, ...other }) => {\n return (\n \n {children}\n {onClose ? (\n \n \n \n ) : null}\n \n );\n});\n\nconst OperatingSystemDialog = ({ open, onClose, onClick }) => {\n const classes = useStyles();\n\n const handleClose = () => {\n onClose();\n };\n\n return (\n \n \n \n \n \n \n \n \"Jasperactive\n \n \n \n If you have already installed the Jasperactive extension then open Adobe Photoshop and start the course.\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default OperatingSystemDialog;","export default __webpack_public_path__ + \"static/media/jasperactive-ac.def25688.svg\";","export default __webpack_public_path__ + \"static/media/warning.084a2111.svg\";","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Box, Link, Typography } from '@material-ui/core';\nimport { theme } from \"../../theme\";\nconst useStyles = makeStyles({\n root: {\n [theme.breakpoints.up('sm')]: {\n marginLeft: theme.spacing(2),\n width: \"200px\",\n },\n [theme.breakpoints.down('sm')]: {\n marginBottom: theme.spacing(2),\n width: \"300px\",\n },\n border: \"1px solid #EBECEE\",\n borderRadius: \"4px\",\n padding: \"20px 15px\",\n \"& a\": {\n color: \"#2F80ED\"\n }\n },\n});\n\nconst LinkBox = ({ links }) => {\n const classes = useStyles();\n const openLink = (url) => {\n window.open(url, \"_blank\");\n };\n \n return (\n \n \n \n Download Links\n \n \n {\n links.filter(x => !x.isHidden).map((item, index) => (\n \n \n { openLink(item.url) }}>\n {item.text}\n \n \n \n ))\n }\n \n );\n};\n\n\n\nexport default LinkBox;","import React from \"react\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Box, Typography } from '@material-ui/core';\nimport { theme } from \"../../theme\";\nimport WarningIcon from '../../assets/other/warning.svg';\nimport LinkBox from \"./LinkBox\";\n\nconst useStyles = makeStyles({\n icon: {\n [theme.breakpoints.up('sm')]: {\n marginTop: theme.spacing(2),\n marginRight: theme.spacing(2),\n },\n [theme.breakpoints.down('sm')]: {\n marginBottom: theme.spacing(1),\n },\n },\n text: {\n [theme.breakpoints.up('sm')]: {\n marginTop: theme.spacing(2),\n marginRight: theme.spacing(2),\n },\n [theme.breakpoints.down('sm')]: {\n marginBottom: theme.spacing(1),\n },\n },\n listStyle: {\n listStyleType: \"lower-latin\",\n fontWeight: \"bold\",\n \"& li span\": {\n fontWeight: \"normal\"\n }\n },\n});\n\nconst Requirements = () => {\n const classes = useStyles();\n const links1 = [\n { text: \"Photoshop Installation Guide\", url: \"https://helpx.adobe.com/creative-cloud/help/download-install-Photoshop.html\" },\n { text: \"Instructions to set Photoshop language\", url: \"https://helpx.adobe.com/creative-cloud/help/change-install-language.html\" },\n ];\n return (\n \n \n \"Warning\"\n \n \n \n Before installing the Jasperactive extension, check that you meet the following requirements:
\n
    \n
  • You have administrator privileges to do the installation.
  • \n
  • \n You have one of the following versions of Photoshop installed.\n
      \n
    • Adobe Photoshop 2020.
    • \n
    • Adobe Photoshop 2021.
    • \n
    \n
  • \n
  • The installation language is English (North America).
  • \n
\n
\n
\n \n
\n );\n};\n\nexport default Requirements;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Box, Typography } from '@material-ui/core';\nimport { theme } from \"../../theme\";\n\nconst useStyles = makeStyles({\n step: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n marginTop: theme.spacing(3),\n },\n stepNumber: {\n width: \"30px\",\n height: \"30px\",\n backgroundColor: theme.palette.product.adobeCreate,\n borderRadius: \"30px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n color: \"white\"\n },\n});\n\nconst Step = ({ step, children }) => {\n const classes = useStyles();\n return (\n \n \n {step}\n \n {children}\n \n );\n};\n\nexport default Step;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Box, Typography } from '@material-ui/core';\nimport { theme } from \"../../theme\";\nimport ReactPlayer from 'react-player/file'\nimport Step from './Step';\nimport LinkBox from './LinkBox';\nimport axios from 'axios';\nimport { Loading } from '../ui';\n\nconst useStyles = makeStyles({\n stepContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n width: \"90%\"\n },\n stepText: {\n marginLeft: theme.spacing(2),\n width: \"90%\"\n }\n});\n\nconst Steps = ({ operatingSystem }) => {\n const [isLoading, setIsLoading] = React.useState(true);\n const [info, setInfo] = React.useState({});\n const [error, setError] = React.useState(null);\n const classes = useStyles();\n const links1 = [\n { text: \"Latest version of the extension\", url: info?.downloadUrl, isHidden: false },\n { text: \"Anastasiy’s Extension Manager \", url: \"https://install.anastasiy.com/\", isHidden: false },\n { text: \"Troubleshooting\", url: \"https://addin-resources.jasperactive.com/jasperactive-adobe/Guides/Troubleshooting.pdf\", isHidden: operatingSystem !== \"mac\" },\n ];\n\n React.useEffect(() => {\n const getInfo = async () => {\n try {\n const response = await axios.get(`/Download/GetFileInfo?appName=adobe`);\n setIsLoading(false);\n setInfo(response.data);\n } catch (error) {\n setIsLoading(false);\n setError(error);\n };\n }\n\n getInfo();\n }, []);\n\n const getVideoUrl = () => {\n switch (operatingSystem) {\n case \"windows\":\n return \"https://addin-resources.jasperactive.com/jasperactive-adobe/windows_installation_guide.mp4\";\n case \"mac\":\n return \"https://addin-resources.jasperactive.com/jasperactive-adobe/mac_installation_guide.mp4\";\n default:\n return \"Intallations guide\";\n }\n };\n\n if (isLoading) {\n return \n }\n\n if (error) {\n return (\n \n \n Something went wrong!\n \n \n {error.message}\n \n \n );\n }\n\n return (\n \n \n \n \n \n Download the latest version of the extension.
\n (Link to the right).\n
\n
\n \n \n To install the Jasperactive extension, you will use the Anastasiy’s
\n Extension Manager
program. (Link to the right).\n
\n
\n \n \n Open the ExtensionManager and follow the wizard's instructions to
\n complete the installation.\n
\n
\n \n \n Select Photoshop from the Adobe Products list and click the Install
\n button.\n
\n
\n \n \n Grant the administrator permissions to complete the installation.\n \n \n \n \n Open Adobe Photoshop and go to the menu
\n Window > Extensions > Jasperactive to open the extension.\n
\n
\n
\n \n
\n );\n};\n\nexport default Steps;","import React from 'react';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport { Box, Button, Card, CardContent, Dialog, DialogContent, IconButton, Typography } from '@material-ui/core';\nimport { theme } from \"../../theme\";\nimport CloseIcon from '@material-ui/icons/Close';\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\nimport JACLogo from '../../assets/logos/products/jasperactive-ac.svg';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport Requirements from './Requirements';\nimport Steps from './Steps';\n\nconst useStyles = makeStyles({\n dialog: {\n borderTop: `4px solid ${theme.palette.product.adobeCreate}`,\n backgroundColor: \"#F2F2F2\",\n paddingTop: theme.spacing(5),\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n },\n dialogContent: {\n backgroundColor: \"#F2F2F2\",\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n },\n header: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: 'flex-start'\n },\n textBox: {\n display: \"flex\",\n [theme.breakpoints.up('xs')]: {\n flexDirection: \"row\",\n justifyContent: \"space-around\",\n alignItems: \"center\",\n },\n [theme.breakpoints.down('xs')]: {\n flexDirection: \"column\",\n justifyContent: \"space-around\",\n alignItems: \"center\",\n },\n },\n text: {\n [theme.breakpoints.up('xs')]: {\n marginLeft: theme.spacing(2),\n },\n },\n buttonBox: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-around\",\n alignItems: \"center\",\n height: \"100px\",\n marginTop: theme.spacing(4),\n marginBottom: theme.spacing(4)\n },\n button: {\n borderColor: theme.palette.product.adobeCreate\n },\n card: {\n borderTop: `4px solid ${theme.palette.product.adobeCreate}`,\n marginBottom: theme.spacing(3)\n },\n cardContent: {\n display: \"flex\",\n [theme.breakpoints.up('sm')]: {\n flexDirection: \"row\",\n justifyContent: \"space-around\",\n alignItems: \"flex-start\",\n },\n [theme.breakpoints.down('sm')]: {\n flexDirection: \"column\",\n justifyContent: \"space-around\",\n alignItems: \"center\",\n },\n },\n cardAction: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-end\",\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(1),\n }\n});\n\nconst styles = (theme) => ({\n root: {\n margin: 0,\n padding: theme.spacing(1),\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500],\n },\n});\n\nconst DialogTitle = withStyles(styles)(({ children, classes, onClose, ...other }) => {\n return (\n \n {children}\n {onClose ? (\n \n \n \n ) : null}\n \n );\n});\n\nconst InstallationDialog = ({ open, onClose, onBack, operatingSystem }) => {\n const [showRequirements, setShowRequirements] = React.useState(true);\n const classes = useStyles();\n\n const handleClose = () => {\n onClose();\n };\n\n const getTitle = () => {\n switch (operatingSystem) {\n case \"windows\":\n return \"Intallations guide for Windows\"\n case \"mac\":\n return \"Intallations guide for Mac\"\n default:\n return \"Intallations guide\";\n }\n };\n\n const onClick = () => {\n setShowRequirements(false);\n };\n\n const onClickBack = () => {\n if (showRequirements) {\n onBack?.();\n }\n else {\n setShowRequirements(true);\n }\n };\n\n return (\n \n \n \n \"Jasperactive\n \n \n \n \n \n \n \n \n \n \n {getTitle()}\n \n \n \n {showRequirements ? : }\n \n \n \n {showRequirements &&\n \n \n \n }\n \n \n );\n};\n\nexport default InstallationDialog;","import React from 'react';\nimport OperatingSystemDialog from './OperatingSystemDialog';\nimport InstallationDialog from './InstallationDialog';\n\nconst Main = ({ open, setOpen }) => {\n const [openRequirements, setOpenRequirements] = React.useState(false);\n const [operatingSystem, setOperatingSystem] = React.useState(\"\");\n\n const showRequirements = (_operatingSystem) => {\n setOpen(false)\n setOpenRequirements(true);\n setOperatingSystem(_operatingSystem);\n };\n\n const onBack = () => {\n setOpenRequirements(false);\n setOpen(true);\n };\n\n return (\n \n setOpen(false)} onClick={showRequirements} />\n setOpenRequirements(false)} operatingSystem={operatingSystem} onBack={onBack} />\n \n );\n};\n\nexport default Main;","import ProductDetail from './ProductDetail'\nexport default ProductDetail","import React, { useState, useEffect, useCallback } from \"react\";\nimport { useParams, useLocation, useHistory } from \"react-router-dom\";\nimport Product from \"../Home/Products/Product/Product\";\nimport FAQ from \"../FAQs\";\nimport styles from \"./styles\";\nimport JDigitalLiteracy from \"../../assets/logos/products/jasperactive-DL-logo.svg\";\nimport JMosOrange from \"../../assets/logos/products/jmos-orange-logo.svg\";\nimport JMosOrangeOnline from \"../../assets/logos/products/jmos-online-orange-logo.png\";\nimport JQuickBook from \"../../assets/logos/products/jasperactive-QB-logo.svg\";\nimport MicrosoftLogo from \"../../assets/logos/partners/Microsoft-Logo-Partner.svg\";\nimport CertiportHover from \"../../assets/logos/partners/certiport-logo-hover.png\";\nimport IC3Logo from \"../../assets/logos/partners/IC3-Logo-Partner.svg\";\nimport IntuitLogo from \"../../assets/logos/partners/Intuit-QB-Logo-Partner.svg\";\nimport MSWord from \"../../assets/logos/mos/ms-word-icon.svg\";\nimport MsExcel from \"../../assets/logos/mos/ms-excel-icon.svg\";\nimport MsPPT from \"../../assets/logos/mos/ms-ppt-icon.svg\";\nimport MsAccess from \"../../assets/logos/mos/ms-access-icon.svg\";\nimport MsOfficeOutlook from \"../../assets/logos/mos/ms-outlook-icon.svg\";\nimport JQBCourseLogo from \"../../assets/logos/products/jasperactive-QB-course-Logo.svg\";\nimport JACCourseLogo from \"../../assets/logos/products/jasperactive_create_adobe.svg\";\nimport DLL1 from \"../../assets/logos/digitalliteracy/L1.svg\";\nimport DLL2 from \"../../assets/logos/digitalliteracy/L2.svg\";\nimport DLL3 from \"../../assets/logos/digitalliteracy/L3.svg\";\nimport JacInDesign from '../../assets/logos/products/create_adobe/Adobe_InDesign_Icon.svg';\nimport JacInPhotoshop from '../../assets/logos/products/create_adobe/Adobe_Photoshop_Icon.svg';\n\nimport {\n Button,\n Card,\n CardContent,\n Typography,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport { theme } from \"../../theme\";\nimport DownArrow from \"../../assets/other/down-arrow-icon.svg\";\nimport { scroller } from \"react-scroll\";\nimport axios from \"axios\";\nimport { Loading } from \"../ui\";\nimport { useAuthentication } from \"../../providers/AuthenticationProvider\";\nimport { products } from \"../../lib/productsData\";\nimport getFAQs from \"../../lib/faqData\";\nimport { default as AdobeInstallatinGuide } from '../adobeInstallationGuide/Main';\n\nconst ProductDetail = () => {\n const params = useParams();\n const classes = new styles();\n const [loading, setLoading] = useState(true);\n const { user } = useAuthentication();\n const [isSubscribed, setIsSubscribed] = useState(false);\n const { pathname } = useLocation();\n const location = useLocation();\n const history = useHistory();\n const [productsUrl, setProductsUrl] = useState(null);\n const isMatched = useMediaQuery(theme.breakpoints.down(\"xs\"));\n const [openAdobeInstallationGuide, setOpenAdobeInstallationGuide] = React.useState(false);\n const productType = params.productType?.toLowerCase();\n\n //Check if user is Subscribed to Specicfic products\n const setSubsribedProduct = useCallback((name) => {\n switch (productType) {\n case \"jmos\":\n if (name.toLowerCase().includes(\"mos\")) {\n setIsSubscribed(true);\n }\n break;\n case \"jmosonline\":\n if (name.toLowerCase().includes(\"office\")) {\n setIsSubscribed(true);\n }\n break;\n case \"jdl\":\n if (name.toLowerCase().includes(\"digital\")) {\n setIsSubscribed(true);\n }\n break;\n case \"jqb\":\n if (name.toLowerCase().includes(\"quick\")) {\n setIsSubscribed(true);\n }\n break;\n case \"jac\":\n if (name.toLowerCase().includes(\"adobe create\")) {\n setIsSubscribed(true);\n }\n break;\n default:\n break;\n }\n }, [productType]);\n\n //Scroll restore to top\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n useEffect(() => {\n if (location.hash === \"#faq\") {\n scroller.scrollTo(\"faq\", {\n smooth: true,\n });\n } else if (location.hash === \"#14\") {\n setShowFAQ(true);\n scroller.scrollTo(\"14\", {\n smooth: true,\n })\n }\n }, [location.hash]);\n\n useEffect(() => {\n setIsSubscribed(false);\n if (user) {\n Promise.all([axios.get(`/Home/GetProducts/${window.location.hostname}`), axios.get(`/Home/GetProducstUrl/${window.location.hostname}`)]).then((values) => {\n let subscribedProducts = values[0];\n let data = subscribedProducts.data;\n let role = subscribedProducts.data.role;\n\n if (role === \"Instructor\") {\n data.teacherProducts.forEach((value) => { setSubsribedProduct(value.productName); });\n } else if (role === \"Student\") {\n data.studentProducts.forEach((value) => { setSubsribedProduct(value.productName); });\n }\n\n setProductsUrl(values[1].data);\n }).catch((error) => console.error(error)).finally(() => { setLoading(false); });\n } else {\n axios.get(`/Home/GetProducstUrl/${window.location.hostname}`).then((response) => {\n setProductsUrl(response.data);\n }).catch((error) => console.error(error)).finally(() => { setLoading(false); });\n }\n }, [user, productType, setSubsribedProduct]);\n\n const getProductUrl = useCallback(\n (applicationName) => {\n if (productsUrl && applicationName) {\n const productUrl = productsUrl.find(\n (product) => product.applicationName === applicationName\n );\n\n if (productUrl) {\n return productUrl.url;\n } else {\n return \"\";\n }\n }\n },\n [productsUrl]\n );\n\n const setProductData = useCallback(() => {\n switch (productType) {\n case \"jmos\":\n setData({\n productpartner: [MicrosoftLogo, CertiportHover],\n theme: theme.palette.secondary.main,\n logo: JMosOrange,\n goTourl: getProductUrl(\"Jasperactive MOS\"),\n description:\n \"Founded on CCI Learning’s world-leading content, Jasperactive for Microsoft Office is the world’s first kinesthetic Microsoft Office learning and validation system mapped to the Microsoft Office Specialist certification objectives. Delivered through Microsoft Office and hosted on Azure, Jasperactive for Microsoft Office focuses on the critical thinking and application of learning Microsoft Office, rather than just learning how to perform functions and accessing features. \",\n goToButton: \"Go to Jasperactive MOS\",\n requestDemoButton: \"Request Demo\",\n requestDemoUrl: \"\",\n availableCoursesTitle: \"Available Courses\",\n youtubeVideoSrc: \"https://www.youtube.com/embed/aVfnKPlX3KI\",\n courses: [\n {\n logo: MSWord,\n topicCovers: \"Covers:\",\n title: \"Microsoft Office Word Associate\",\n covers: [\n \"Microsoft Office 365\",\n \"Microsoft Office 2019\",\n \"Microsoft Office 2016\",\n \"Microsoft Office 2013\",\n ],\n },\n {\n logo: MSWord,\n topicCovers: \"Covers:\",\n title: \"Microsoft Office Word Expert\",\n covers: [\n \"Microsoft Office 365\",\n \"Microsoft Office 2019\",\n \"Microsoft Office 2016\",\n \"Microsoft Office 2013\",\n ],\n },\n {\n logo: MsExcel,\n topicCovers: \"Covers:\",\n title: \"Microsoft Office Excel Associate\",\n covers: [\n \"Microsoft Office 365\",\n \"Microsoft Office 2019\",\n \"Microsoft Office 2016\",\n \"Microsoft Office 2013\",\n ],\n },\n {\n logo: MsExcel,\n topicCovers: \"Covers:\",\n title: \"Microsoft Office Excel Expert\",\n covers: [\n \"Microsoft Office 365\",\n \"Microsoft Office 2019\",\n \"Microsoft Office 2016\",\n \"Microsoft Office 2013\",\n ],\n },\n {\n logo: MsPPT,\n topicCovers: \"Covers:\",\n title: \"Microsoft Office Powerpoint\",\n covers: [\n \"Microsoft Office 365\",\n \"Microsoft Office 2019\",\n \"Microsoft Office 2016\",\n \"Microsoft Office 2013\",\n ],\n },\n {\n logo: MsAccess,\n topicCovers: \"Covers:\",\n title: \"Microsoft Office Access\",\n covers: [\n \"Microsoft Office 365\",\n \"Microsoft Office 2019\",\n \"Microsoft Office 2016\",\n \"Microsoft Office 2013\",\n ],\n },\n {\n logo: MsOfficeOutlook,\n topicCovers: \"Covers:\",\n title: \"Microsoft Office Outlook\",\n covers: [\n \"Microsoft Office 365\",\n \"Microsoft Office 2019\",\n \"Microsoft Office 2016\",\n \"Microsoft Office 2013\",\n ],\n },\n ],\n });\n break;\n\n case \"jmosonline\":\n setData({\n productpartner: [MicrosoftLogo, CertiportHover],\n theme: theme.palette.secondary.main,\n logo: JMosOrangeOnline,\n description:\n \"Jasperactive MOS Online is truly a game-changer. Delivered through Microsoft Office Web apps and hosted on Azure, it can be used by anyone, anytime, and anywhere. Specifically formulated for certification readiness, Jasperactive MOS Online is web-based learning for Microsoft Office with tailored exercises for Word, Excel, and PowerPoint Office 365 web applications.\\nAccessible on ChromeOS, MacOS, and More! \",\n goToButton: \"Go to Office 365\",\n goTourl: getProductUrl(\"Office 365\"),\n requestDemoButton: \"Request Demo\",\n requestDemoUrl: \"https://www.office.com\",\n availableCoursesTitle: \"Available Courses\",\n youtubeVideoSrc: \"https://www.youtube.com/embed/tQ0nzPCTgME\",\n courses: [\n {\n logo: MSWord,\n topicCovers: \"Covers:\",\n title: \"Microsoft Office Word Associate\",\n covers: [\"Microsoft 365\"],\n },\n {\n logo: MSWord,\n topicCovers: \"Covers:\",\n title: \"Microsoft Office Word Expert\",\n covers: [\"Microsoft 365\"],\n },\n {\n logo: MsExcel,\n topicCovers: \"Covers:\",\n title: \"Microsoft Office Excel Associate\",\n covers: [\"Microsoft 365\"],\n },\n {\n logo: MsExcel,\n topicCovers: \"Covers:\",\n title: \"Microsoft Office Excel Expert\",\n covers: [\"Microsoft 365\"],\n },\n {\n logo: MsPPT,\n topicCovers: \"Covers:\",\n title: \"Microsoft Office Powerpoint\",\n covers: [\"Microsoft 365\"],\n },\n ],\n });\n break;\n\n case \"jdl\":\n setData({\n productpartner: [IC3Logo],\n theme: theme.palette.product.digitalLiteracy,\n logo: JDigitalLiteracy,\n description:\n \"Digital Literacy is the ability to learn, understand, apply, and formulate ideas using information and communication technology safely and successfully.\\nMapped to the IC3 GS6 Global Standard, CCI Learning’s world-class digital literacy courseware comes to life in Jasperactive. \",\n goToButton: \"Go to Jasperactive app\",\n goTourl: getProductUrl(\"Jasperactive APP\"),\n requestDemoButton: \"Try a Free Lesson\",\n requestDemoUrl: getProductUrl(\"Jasperactive APP\"),\n availableCoursesTitle: \"Available Courses\",\n youtubeVideoSrc: \"https://www.youtube.com/embed/jSEQaCEaNmc\",\n courses: [\n {\n logo: DLL1,\n topicCovers: \"In this module, you will:\",\n title: \"Level 1 Fundamental Concepts and Essential Components\",\n covers: [\n \"Learn what an operating system is and its importance to a computing device.\",\n \"Learn what a digital identity is and how to manage it.\",\n \"Learn how to search for information on the Internet.\",\n \"Understand what it means to create content for common tasks.\",\n \"Identify different methods of communicating with others online.\",\n \"Understand what online collaboration is and how it works.\",\n \"Understand why it is important to be safe and secure when online.\",\n ],\n },\n {\n logo: DLL2,\n topicCovers: \"In this module, you will:\",\n title: \"Level 2 Working Knowledge of Core Skills\",\n covers: [\n \"Expand technology skills to customize settings for the computing device.\",\n \"Understand the importance of an online personal and professional identify.\",\n \"Learn to narrow your search criteria and assess the search results.\",\n \"Expand your knowledge to create and manage the content.\",\n \"Recognize ways you can communicate or participate with online apps.\",\n \"Understand how you can collaborate with others in a digital environment.\",\n \"Explore the various ways to stay safe and healthy when online.\",\n ],\n },\n {\n logo: DLL3,\n topicCovers: \"In this module, you will:\",\n title: \"Level 3 Advanced Understanding of Digital Literacy\",\n covers: [\n \"Understand technical requirements for hardware or software support.\",\n \"Recognize and identify what it means to be a good citizen online.\",\n \"Apply advanced search tools for research purposes.\",\n \"Understand how to recognize and protect digital content creations.\",\n \"Expand your knowledge for managing communication online.\",\n \"Understand how to collaborate with internal teams and clients.\",\n \"Recognize tools you can apply to protect computing devices.\",\n ],\n },\n ],\n });\n break;\n\n case \"jqb\":\n setData({\n productpartner: [IntuitLogo],\n theme: theme.palette.product.quickbooks,\n logo: JQuickBook,\n description:\n \"The perfect addition to any Accounting/Business program, this course of Jasperactive QuickBooks covers all exam objectives for Certiport's QuickBooks Certified User certification by: \" +\n \"\\n• Employing a variety of methodologies\" +\n \"\\n• Using an exercise-based approach with real-world context \" +\n \"\\n• Guiding the student with a performance level approach \" +\n \"\\n• Allowing learners to assess their own understanding\" +\n \" \\n• Generating quality data for learners and their instructors \",\n goToButton: \"Go to Jasperactive app\",\n goTourl: getProductUrl(\"Jasperactive APP\"),\n requestDemoButton: \"Try a Free Lesson\",\n requestDemoUrl: getProductUrl(\"Jasperactive APP\"),\n availableCoursesTitle: \"Available Courses\",\n youtubeVideoSrc: \"https://www.youtube.com/embed/qlHG6Nbm36Q\",\n courses: [\n {\n logo: JQBCourseLogo,\n topicCovers: \"This module is:\",\n title: \"QuickBooks\",\n covers: [\n \"The perfect addition to any Accounting/Business program, this course covers all exam objectives for Certiport's QuickBooks Certified User exam.\",\n ],\n },\n ],\n });\n break;\n case \"jac\":\n setData({\n productpartner: [],\n theme: theme.palette.product.adobeCreate,\n logo: JACCourseLogo,\n description: \"Adobe Creative Cloud is a collection of powerful and feature-rich programs. Jasperactive Create For Adobe is a learning and validation system mapped to the Adobe Certified Professional certification objectives that help learners build the skills and confidence to meet the demands of the design industry.\\nIntroducing the “Show Me” feature: The 'Show Me' feature provides video clips that show the step-by-step process of the lesson to allow learners to see where they went wrong and continue to learn.\\nThis learning system is compatible with Windows and Mac devices.\",\n goToButton: \"GO TO JASPERACTIVE CREATE\",\n goTourl: getProductUrl(\"Adobe Create\"),\n requestDemoButton: \"Request Demo\",\n requestDemoUrl: \"\",\n availableCoursesTitle: \"\",\n youtubeVideoSrc: \"https://www.youtube.com/embed/cW77a4z5XPE\",\n courses: [\n {\n logo: JacInDesign,\n title: 'InDesign',\n dataSheetSrc: 'https://addin-resources.jasperactive.com/jasperactive-adobe/Datasheets/Jasperactive%20Create%20-%20InDesign%20-%20Datasheet%20-%202022.pdf',\n fAndBSrc: 'https://addin-resources.jasperactive.com/jasperactive-adobe/Datasheets/Jasperactive%20Create%20-%20InDesign%20-%20Features%20&%20Benefits%20-%202022.pdf',\n covers: [],\n },\n {\n logo: JacInPhotoshop,\n title: 'Photoshop',\n dataSheetSrc: 'https://addin-resources.jasperactive.com/jasperactive-adobe/Datasheets/Jasperactive%20Create%20-%20Photoshop%20-%20Datasheet%20-%202022.pdf',\n fAndBSrc: 'https://addin-resources.jasperactive.com/jasperactive-adobe/Datasheets/Jasperactive%20Create%20-%20Photoshop%20-%20Features%20&%20Benefits%20-%202022.pdf',\n covers: [],\n }\n ]\n });\n\n break;\n default: {\n setData(null);\n }\n }\n }, [productType, getProductUrl]);\n\n useEffect(() => {\n if (!loading && productsUrl) {\n setProductData();\n }\n }, [loading, productsUrl, setProductData]);\n\n const goToCourseSection = () => {\n scroller.scrollTo(\"courseSection\", {\n smooth: true,\n });\n };\n\n const [showFAQ, setShowFAQ] = useState(false);\n const handleFAQ = () => {\n setShowFAQ(!showFAQ);\n }\n\n const [data, setData] = useState({\n productpartner: [],\n theme: \"\",\n logo: \"\",\n description: \"\",\n goToButton: \"\",\n goTourl: \"\",\n requestDemoButton: \"\",\n requestDemoUrl: \"\",\n availableCoursesTitle: \"\",\n youtubeVideoSrc: \"\",\n courses: [\n {\n logo: \"\",\n title: \"\",\n topicCovers: \"\",\n covers: [],\n },\n ],\n });\n\n if (loading) {\n return ;\n } else if (data === null) {\n return Error:404, Page not found;\n } else\n return (\n
\n
\n
\n
\n \n {data.title}\n
\n {data.description.split(\"\\n\").map((value, i) => {\n return (\n \n {value}\n \n );\n })}\n\n
\n {\n window.open(data.goTourl, \"_blank\");\n }}\n variant=\"contained\"\n >\n {data.goToButton}\n \n {isSubscribed && data.logo.indexOf(\"jasperactive-ac.\") > -1 &&\n \n }\n {!isSubscribed && data.requestDemoButton ? (\n {\n if (\n productType === \"jmos\" ||\n productType === \"jmosonline\" ||\n productType === \"jac\"\n ) {\n history.push({\n pathname: \"/pricing\",\n hash: \"contactus\",\n });\n } else {\n window.open(data.requestDemoUrl, \"_blank\");\n }\n }}\n >\n {data.requestDemoButton}\n \n ) : (\n \"\"\n )}\n {data.courses.length > 0 &&\n
\n \n
\n }\n
\n
\n {productType === \"jac\" ? null\n :\n \n }\n
\n {data.productpartner.length > 0 &&\n
\n \n Partner for this product:\n \n {data.productpartner.map((partner, index) => {\n return (\n \n );\n })}\n
\n }\n {\n productType === \"jac\" && data.courses.length >= 1 &&
\n \n Available courses\n \n
\n {\n data.courses.map((course, index) => {\n return (\n \n \n \n \n {course.title}\n \n \n \n {\n window.open(course.dataSheetSrc, \"_blank\");\n }}\n variant=\"outlined\"\n >\n Learn More\n \n {\n window.open(course.fAndBSrc, \"_blank\");\n }}\n variant=\"outlined\"\n >\n Features & Benefits\n \n \n \n )\n })\n }\n
\n
\n }\n {data.courses.length > 0 && productType !== \"jac\" &&\n
\n \n {data.availableCoursesTitle}\n \n
\n {data.courses.map((value, index) => {\n return (\n \n \n \n \n {value.title}\n \n \n \n \n {value.topicCovers}\n \n
    \n {value.covers.map((value, index) => {\n return (\n \n {value}\n \n );\n })}\n
\n
\n
\n );\n })}\n
\n
\n }\n {productType === \"jmosonline\" ? (\n
\n \n Frequently Asked Questions\n \n {getFAQs().map((faq, index) => {\n return (\n \n );\n })}\n
\n ) : (\n \"\"\n )}\n
\n \n Other Available Products\n \n
\n {products()\n .filter((product) => {\n return product.prodType !== productType;\n })\n .map((product, index) => {\n return (\n \n );\n })}\n
\n
\n \n
\n );\n};\n\nexport default ProductDetail;\n","import {makeStyles} from '@material-ui/core/styles'\nimport {theme} from '../../theme'\n\nconst styles = makeStyles({\n container:{\n display:\"flex\",\n flex:\"1\",\n flexDirection:\"column\"\n },\n userInfo:{\n display:'flex',\n flex:\"0.1\",\n flexDirection:\"column\",\n minHeight:\"20%\",\n justifyContent:\"space-around\",\n backgroundColor:theme.palette.grey[100],\n marginTop:theme.spacing(6)\n },\n userName:{\n ...theme.typography.h1,\n },\n userType:{\n ...theme.typography.h3,\n color:theme.palette.grey[500],\n },\n getStartedButton:{\n color:theme.palette.common.white,\n backgroundColor:theme.palette.primary.main,\n height:\"max-content\",\n alignSelf:\"center\",\n marginRight:theme.spacing(3),\n '&:hover':{\n backgroundColor:theme.palette.primary.main,\n }\n },\n subscribeProduct:{\n ...theme.typography.h1,\n color:theme.palette.grey[500],\n marginTop: theme.spacing(6),\n marginBottom:theme.spacing(6)\n },\n productSection:{\n display:\"flex\",\n flexDirection:\"column\",\n flex:\"0.8\"\n }\n})\n\nexport default styles;","import {makeStyles} from '@material-ui/core/styles'\nimport {theme} from '../../theme'\n\nconst styles = makeStyles({\n container:{\n display:\"flex\",\n marginTop:theme.spacing(2),\n marginBottom:theme.spacing(4),\n marginLeft:theme.spacing(3)\n },\n links:{\n ...theme.typography.subtitle1,\n color:theme.palette.primary.main,\n textDecoration:\"none\"\n \n },\n lastLink:{\n fontSize:\"13px\",\n fontWeight:\"600\",\n lineHeight:\"20px\"\n },\n backarrow:{\n color:theme.palette.primary.main,\n marginRight:theme.spacing(2),\n '&:hover':{\n cursor:\"pointer\"\n }\n },\n})\n\n\nexport default styles;","import BreadCrumbs from './BreadCrums'\nexport default BreadCrumbs;","import React from 'react'\nimport { useHistory, Link, withRouter } from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography';\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\nimport styles from './styles'\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\n\n\nconst BreadCrumbs = (props) => {\n\n const classes = new styles();\n const history = useHistory();\n const { location } = props;\n\n const goBack = () => {\n history.goBack();\n }\n\n return (\n
\n \n \n \n Home\n \n {location.pathname === \"/dashboard\" ? \"User Dashboard\" : \"\"}\n \n
\n\n\n )\n}\n\n\nexport default withRouter(BreadCrumbs);","import { makeStyles } from '@material-ui/core/styles'\nimport { theme } from '../../theme'\n\nconst styles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: \"column\",\n marginBottom: theme.spacing(8)\n\n },\n logoSection: {\n display: \"flex\",\n justifyContent: 'space-between',\n [theme.breakpoints.down('sm')]: {\n flexWrap: \"wrap\"\n },\n },\n buttonsContainer: {\n display: \"flex\",\n justifyContent: 'space-between',\n [theme.breakpoints.down('sm')]: {\n flexWrap: \"wrap\"\n },\n },\n goToButton: {\n ...theme.typography.h4,\n color: theme.palette.common.white,\n height: \"max-content\",\n textTransform: \"uppercase\",\n marginTop: theme.spacing(1),\n [theme.breakpoints.up('sm')]: {\n marginRight: theme.spacing(1),\n },\n [theme.breakpoints.down('xs')]: {\n width: '100%'\n },\n },\n title: {\n ...theme.typography.h2,\n color: theme.palette.grey[500]\n },\n instructorIndividual: {\n display: \"flex\",\n flexWrap: \"wrap\",\n maxWidth: \"25%\",\n padding: \"0px 8px\",\n '&:hover': {\n cursor: \"pointer\"\n },\n [theme.breakpoints.down('sm')]: {\n maxWidth: \"100%\",\n marginTop: theme.spacing(1)\n }\n },\n instructorMenuSection: {\n display: \"flex\",\n justifyContent: \"space-between\",\n [theme.breakpoints.down('sm')]: {\n flexWrap: \"wrap\",\n flexDirection: \"column\"\n },\n paddingTop: theme.spacing(2),\n paddingBottom: \"0px\",\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2)\n },\n instructorTitle: {\n ...theme.typography.h3,\n color: theme.palette.grey[500]\n },\n instructorContent: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\"\n\n }\n})\n\nexport default styles;","import SubscribedProduct from './SubscribedProduct'\nexport default SubscribedProduct;","import React from 'react'\nimport { Box, Button, Card, CardContent, Typography, useMediaQuery } from \"@material-ui/core\"\nimport styles from './style'\nimport { default as AdobeInstallatinGuide } from '../adobeInstallationGuide/Main';\n\nconst SubscribedProduct = ({ name, theme, logo, goToTitle, url, role, instructorMenus }) => {\n const classes = new styles();\n const isMatched = useMediaQuery('(max-width:750px)');\n //const isMobileScreen = useMediaQuery('(max-width:600px)');\n const [openAdobeInstallationGuide, setOpenAdobeInstallationGuide] = React.useState(false);\n\n const openItem = url => {\n if (logo.indexOf(\"jasperactive-ac.\") > -1) {\n setOpenAdobeInstallationGuide(true);\n } else {\n window.open(url, \"_blank\");\n }\n }\n\n const goToRespectiveUrl = url => {\n window.location.href = url\n }\n\n return (\n \n \n \n \n \n {role === 'Student' && url === 'https://www.office.com' &&\n \n }\n \n \n \n {role === \"Instructor\" &&\n \n {instructorMenus.map((value, i) => {\n return (\n { goToRespectiveUrl(value.url) }} >\n \n \n \n {value.title}\n \n \n \n );\n })}\n \n }\n \n \n \n )\n}\n\n\nexport default SubscribedProduct;","export default __webpack_public_path__ + \"static/media/dashboard-icon-orange.c7cbc37b.svg\";","export default __webpack_public_path__ + \"static/media/dashboard-icon-green.74092450.svg\";","export default __webpack_public_path__ + \"static/media/dashboard-icon-purple.88ab4ede.svg\";","export default __webpack_public_path__ + \"static/media/dashboard-icon-yellow.f3b6c163.svg\";","export default __webpack_public_path__ + \"static/media/groups-icon-orange.fad84c21.svg\";","export default __webpack_public_path__ + \"static/media/groups-icon-green.ce2766e1.svg\";","export default __webpack_public_path__ + \"static/media/groups-icon-purple.5ca01b03.svg\";","export default __webpack_public_path__ + \"static/media/groups-icon-yellow.0161308e.svg\";","export default __webpack_public_path__ + \"static/media/report-icon-orange.7b5d9bd1.svg\";","export default __webpack_public_path__ + \"static/media/report-icon-green.45435024.svg\";","export default __webpack_public_path__ + \"static/media/report-icon-purple.12402569.svg\";","export default __webpack_public_path__ + \"static/media/report-icon-yellow.dab8e6e3.svg\";","export default __webpack_public_path__ + \"static/media/resources-icon-orange.3e82170c.svg\";","export default __webpack_public_path__ + \"static/media/resources-icon-green.0fae94b2.svg\";","export default __webpack_public_path__ + \"static/media/resources-icon-purple.10fb4031.svg\";","export default __webpack_public_path__ + \"static/media/resources-icon-yellow.a323b3df.svg\";","import React, { useState, useEffect } from \"react\";\nimport styles from \"./styles\";\nimport BreadCrumbs from \"../BreadCrumbs\";\nimport { Typography, Paper, useTheme, Button } from \"@material-ui/core\";\nimport SubscribedProduct from \"../SubscribedProducts\";\nimport DashboardOrangeIcon from \"../../assets/dashboardicons/dashboard-icon-orange.svg\";\nimport DashboardGreenIcon from \"../../assets/dashboardicons/dashboard-icon-green.svg\";\nimport DashboardPurpleIcon from \"../../assets/dashboardicons/dashboard-icon-purple.svg\";\nimport DashboardYellowIcon from \"../../assets/dashboardicons/dashboard-icon-yellow.svg\";\nimport GroupsOrangeIcon from \"../../assets/dashboardicons/groups-icon-orange.svg\";\nimport GroupsGreenIcon from \"../../assets/dashboardicons/groups-icon-green.svg\";\nimport GroupsPurpleIcon from \"../../assets/dashboardicons/groups-icon-purple.svg\";\nimport GroupsYellowIcon from \"../../assets/dashboardicons/groups-icon-yellow.svg\";\nimport ReportOrangeIcon from \"../../assets/dashboardicons/report-icon-orange.svg\";\nimport ReportGreenIcon from \"../../assets/dashboardicons/report-icon-green.svg\";\nimport ReportPurpleIcon from \"../../assets/dashboardicons/report-icon-purple.svg\";\nimport ReportYellowIcon from \"../../assets/dashboardicons/report-icon-yellow.svg\";\nimport InstructorOrangeIcon from \"../../assets/dashboardicons/resources-icon-orange.svg\";\nimport InstructorGreenIcon from \"../../assets/dashboardicons/resources-icon-green.svg\";\nimport InstructorPurpleIcon from \"../../assets/dashboardicons/resources-icon-purple.svg\";\nimport InstructorYellowIcon from \"../../assets/dashboardicons/resources-icon-yellow.svg\";\nimport DigitalLiteracyLogo from \"../../assets/logos/products/jasperactive-DL-logo.svg\";\nimport JMosLogo from \"../../assets/logos/products/jmos-orange-logo.svg\";\nimport JMosOnlineLogo from \"../../assets/logos/products/jmos-online-orange-logo.png\";\nimport QuickBookLogo from \"../../assets/logos/products/jasperactive-QB-logo.svg\";\nimport JACCourseLogo from \"../../assets/logos/products/jasperactive_create_adobe.svg\";\nimport { useAuthentication } from \"../../providers/AuthenticationProvider\";\nimport { Loading } from \"../ui\";\nimport axios from \"axios\";\n\nconst Dashboard = () => {\n const { user, userRole, setUserRole } = useAuthentication();\n const [loading, setLoading] = useState(true);\n const classes = new styles();\n const theme = useTheme();\n const [products, setProducts] = useState([]);\n const [defaultproducts, setDefaultProducts] = useState([\n {\n theme: \"\",\n logo: \"\",\n goToTitle: \"\",\n goTourl: \"\",\n },\n ]);\n\n useEffect(() => {\n if (user) {\n Promise.all([\n axios.get(`/Home/GetProducts/${window.location.hostname}`),\n axios.get(`/Home/GetProducstUrl/${window.location.hostname}`),\n ])\n .then((values) => {\n const dashboard = values[0].data;\n const urlInfo = values[1].data;\n const role = dashboard.role;\n let productList = [];\n\n if (role === \"Instructor\") {\n productList = getTeacherProducts(dashboard.teacherProducts);\n } else {\n productList = getStudentProducts(dashboard.studentProducts);\n }\n\n if (productList.length === 0) {\n setDefaultProducts(getDefaultProducts(theme, urlInfo, dashboard));\n } else {\n setProducts(productList);\n }\n\n setUserRole(role);\n })\n .catch((error) => {\n console.error(error);\n })\n .then(() => setLoading(false));\n }\n }, [\n user,\n setUserRole,\n theme,\n theme.palette.product.adobeCreate,\n theme.palette.product.cci,\n theme.palette.product.digitalLiteracy,\n theme.palette.product.quickbooks,\n ]);\n\n if (loading) {\n return ;\n } else {\n return (\n
\n \n \n
\n
\n \n Hi {user?.name}!\n \n \n Role: {userRole}\n \n
\n {\n window.open(\n \"https://support.jasperactive.com/support/home\",\n \"_blank\"\n );\n }}\n >\n Getting Started Instructions\n \n
\n
\n\n {products.length === 0 ? (\n
\n \n Have a product license/group code? Click on that product link to\n get started:\n \n\n {defaultproducts.map((defaultproduct, index) => {\n return (\n \n );\n })}\n
\n ) : (\n
\n \n Subscribed Products\n \n {products.map((value, i) => {\n return (\n \n );\n })}\n
\n )}\n
\n );\n }\n};\n\nconst getDefaultProducts = (theme, urlInfo, userProducts) => {\n return [\n {\n theme: theme.palette.product.cci,\n logo: JMosLogo,\n goToTitle: \"Go To Jasperactive Microsoft Office\",\n goTourl: getDefaultUrl(\"Jasperactive MOS\", urlInfo),\n },\n {\n theme: theme.palette.product.digitalLiteracy,\n logo: DigitalLiteracyLogo,\n goToTitle: \"Go To Jasperactive Digital Literacy\",\n goTourl: getDefaultUrl(\n \"Jasperactive APP\",\n userProducts.defaultProductsUrl\n ),\n },\n {\n theme: theme.palette.product.quickbooks,\n logo: QuickBookLogo,\n goToTitle: \"Go To Jasperactive QuickBooks\",\n goTourl: getDefaultUrl(\"Jasperactive APP\", urlInfo),\n },\n {\n theme: theme.palette.product.adobeCreate,\n logo: JACCourseLogo,\n goToTitle: \"Get Download Instructions\",\n goTourl: getDefaultUrl(\"Adobe Create\", urlInfo),\n },\n ];\n};\n\nconst getDefaultUrl = (productName, data) => {\n const product = data.find((product) => {\n return product.applicationName === productName;\n });\n\n if (product) {\n return product.url;\n } else {\n return \"\";\n }\n};\n\nconst getTeacherProducts = (teacherProducts) => {\n return teacherProducts.map((item) => {\n return {\n name: item.applicationName,\n theme: item.color,\n logo: getProductLogo(item.productName),\n goToTitle: getApplicationTitle(item),\n url: item.url,\n title:\n item.applicationName === \"Jasperactive APP\" ? item.productName : null,\n instructorsMenu: [\n {\n icon: getDashboardIcon(item.productName),\n title: \"Home\",\n url: item.dashboardUrl,\n },\n {\n icon: getManageGroupIcon(item.productName),\n title: \"Manage Groups\",\n url: item.manageGroupsUrl,\n },\n {\n icon: getReportIcon(item.productName),\n title: \"View Reports\",\n url: item.reportsUrl,\n },\n {\n icon: getInstructorIcon(item.productName),\n title: \"Instructor Resources\",\n url: item.resourcesUrl,\n },\n ],\n };\n });\n};\n\nconst getStudentProducts = (studentProducts) => {\n return studentProducts.map((item) => {\n return {\n name: item.applicationName,\n theme: item.color,\n logo: getProductLogo(item.productName),\n goToTitle: getApplicationTitle(item),\n url: item.url,\n title:\n item.applicationName === \"Jasperactive APP\" ? item.productName : null,\n };\n });\n};\n\nconst getProductLogo = (name) => {\n if (name.toLowerCase().includes(\"digital\")) {\n return DigitalLiteracyLogo;\n } else if (name.toLowerCase().includes(\"mos\")) {\n return JMosLogo;\n } else if (name.toLowerCase().includes(\"office\")) {\n return JMosOnlineLogo;\n } else if (name.toLowerCase().includes(\"quick\")) {\n return QuickBookLogo;\n } else if (name.toLowerCase().includes(\"adobe create\")) {\n return JACCourseLogo;\n } else {\n return null;\n }\n};\n\nconst getApplicationTitle = (product) => {\n const { productName: name } = product;\n\n if (name.toLowerCase().includes(\"digital\")) {\n return \"Go To Jasperactive Digital Literacy\" + (name.includes(\"5\") ? \" GS5\" : name.includes(\"6\") ? \" GS6\" : \"\");\n } else if (name.toLowerCase().includes(\"mos\")) {\n return \"Go To Jasperactive Microsoft Office\";\n } else if (name.toLowerCase().includes(\"office\")) {\n return \"Go To Office 365\";\n } else if (name.toLowerCase().includes(\"quick\")) {\n return \"Go To Jasperactive QuickBooks\";\n } else if (name.toLowerCase().includes(\"adobe create\")) {\n return \"Get Download Instructions\";\n } else {\n return \"Go To Jasperactive App\";\n }\n};\n\nconst getDashboardIcon = (name) => {\n if (name.toLowerCase().includes(\"digital\")) {\n return DashboardGreenIcon;\n } else if (name.toLowerCase().includes(\"mos\")) {\n return DashboardOrangeIcon;\n } else if (name.toLowerCase().includes(\"office\")) {\n return DashboardOrangeIcon;\n } else if (name.toLowerCase().includes(\"quick\")) {\n return DashboardPurpleIcon;\n } else if (name.toLowerCase().includes(\"adobe create\")) {\n return DashboardYellowIcon;\n } else {\n return DashboardOrangeIcon;\n }\n};\n\nconst getManageGroupIcon = (name) => {\n if (name.toLowerCase().includes(\"digital\")) {\n return GroupsGreenIcon;\n } else if (name.toLowerCase().includes(\"MOS\")) {\n return GroupsOrangeIcon;\n } else if (name.toLowerCase().includes(\"office\")) {\n return GroupsOrangeIcon;\n } else if (name.toLowerCase().includes(\"quick\")) {\n return GroupsPurpleIcon;\n } else if (name.toLowerCase().includes(\"adobe create\")) {\n return GroupsYellowIcon;\n } else {\n return GroupsOrangeIcon;\n }\n};\n\nconst getReportIcon = (name) => {\n if (name.toLowerCase().includes(\"digital\")) {\n return ReportGreenIcon;\n } else if (name.toLowerCase().includes(\"mos\")) {\n return ReportOrangeIcon;\n } else if (name.toLowerCase().includes(\"office\")) {\n return ReportOrangeIcon;\n } else if (name.toLowerCase().includes(\"quick\")) {\n return ReportPurpleIcon;\n } else if (name.toLowerCase().includes(\"adobe create\")) {\n return ReportYellowIcon;\n } else {\n return ReportOrangeIcon;\n }\n};\n\nconst getInstructorIcon = (name) => {\n if (name.toLowerCase().includes(\"digital\")) {\n return InstructorGreenIcon;\n } else if (name.toLowerCase().includes(\"mos\")) {\n return InstructorOrangeIcon;\n } else if (name.toLowerCase().includes(\"office\")) {\n return InstructorOrangeIcon;\n } else if (name.toLowerCase().includes(\"quick\")) {\n return InstructorPurpleIcon;\n } else if (name.toLowerCase().includes(\"adobe create\")) {\n return InstructorYellowIcon;\n } else {\n return InstructorOrangeIcon;\n }\n};\n\nexport default Dashboard;\n","import Dashboard from './Dashboard'\nexport default Dashboard;","import { makeStyles } from '@material-ui/core/styles'\nimport { theme } from '../../theme'\n\nconst styles = makeStyles({\n container: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n marginTop:theme.spacing(7),\n flex: 1\n },\n title: {\n ...theme.typography.h2,\n color: theme.palette.grey[500],\n marginBottom:theme.spacing(2),\n fontWeight:500\n },\n salesTeamPath: {\n display: \"flex\",\n flexDirection: \"column\",\n marginTop:theme.spacing(6)\n\n },\n salesTitle: {\n ...theme.typography.h3,\n color: theme.palette.grey[400],\n marginBottom:theme.spacing(2)\n },\n salesIndividual: {\n display: \"flex\",\n justifyContent:\"flex-start\",\n flexWrap:\"wrap\",\n [theme.breakpoints.down('xs')]:{\n flexDirection:\"column\"\n }\n },\n joinSellerTeam:{\n display:\"flex\",\n justifyContent:\"space-between\",\n marginTop:theme.spacing(16),\n [theme.breakpoints.down('sm')]:{\n flexDirection:\"column\"\n }\n\n },\n joinLeftSection:{\n display:\"flex\",\n flexDirection:\"column\",\n justifyContent:\"space-between\",\n marginRight:theme.spacing(6),\n [theme.breakpoints.down('xs')]:{\n marginRight:\"0px\"\n }\n \n },\n joinIndividualText:{\n ...theme.typography.body1,\n color:theme.palette.grey[400]\n },\n \n})\n\n\nexport default styles;","export default __webpack_public_path__ + \"static/media/contact-icon.da7b794d.svg\";","export default __webpack_public_path__ + \"static/media/purchase-icon.a72d9768.svg\";","export default __webpack_public_path__ + \"static/media/success-icon.7235b2d9.svg\";","export default __webpack_public_path__ + \"static/media/training-icon.297f82bf.svg\";","export default __webpack_public_path__ + \"static/media/progess-icon.fb7313be.svg\";","export default __webpack_public_path__ + \"static/media/student-icon.f6fed565.svg\";","export default __webpack_public_path__ + \"static/media/sales_banner.a9536d6e.png\";","export default __webpack_public_path__ + \"static/media/sales_banner_2.41cef383.png\";","import {makeStyles} from '@material-ui/core/styles'\nimport {theme} from '../../theme'\n\nconst styles = makeStyles({\n\n contactUsSection:{\n display:\"flex\",\n flexDirection:\"column\",\n justifyContent:\"space-between\",\n marginTop:theme.spacing(16)\n },\n\n contactUsSectionTitle:{\n ...theme.typography.h2,\n color:theme.palette.grey[500],\n marginBottom:theme.spacing(4),\n fontWeight:500\n },\n contactusSubtitle:{\n ...theme.typography.h3,\n color:theme.palette.grey[500],\n marginTop:theme.spacing(2)\n \n },\n contactForm:{\n display:\"flex\",\n flexDirection:\"column\",\n justifyContent:\"space-evenly\",\n marginBottom:theme.spacing(2)\n },\n \n inputField:{\n marginTop:theme.spacing(2),\n height:theme.spacing(7),\n paddingLeft:theme.spacing(2),\n backgroundColor:theme.palette.grey[100]\n },\n\n messageField:{\n marginTop:theme.spacing(2),\n paddingLeft:theme.spacing(2),\n backgroundColor:theme.palette.grey[100]\n \n },\n \n submitBtn:{\n \n ...theme.typography.h4,\n marginTop:theme.spacing(2),\n width:\"fit-content\",\n alignSelf:\"flex-end\",\n backgroundColor:theme.palette.primary.main,\n color:theme.palette.common.white,\n textTransform:\"uppercase\",\n '&:hover':{\n backgroundColor:theme.palette.primary.main\n }\n\n }\n\n})\n\n\nexport default styles;","import ContactUs from './ContactUs'\nexport default ContactUs;","import React, { useState } from \"react\";\nimport { Typography, TextField, Button } from \"@material-ui/core\";\nimport styles from \"./style\";\nimport axios from 'axios'\nimport { useSnackbar } from 'notistack';\n\nconst ContactUs = () => {\n const classes = new styles();\n const [error, setError] = useState({\n show: 0,\n message: \"\",\n });\n\n const { enqueueSnackbar } = useSnackbar();\n\n\n const [userData, setUserData] = useState({\n name: \"\",\n companyName: \"\",\n jobTitle:\"\",\n email: \"\",\n phoneNumber: \"\",\n city: \"\",\n country: \"\",\n message:\"\"\n });\n\n const submitData = () => {\n if (!userData.name) {\n setError({\n show: 1,\n message: \"Name is required\",\n });\n return;\n }\n\n if (!userData.companyName) {\n setError({\n show: 2,\n message: \"Company Name is required\",\n });\n return;\n }\n\n if (!userData.jobTitle) {\n setError({\n show: 3,\n message: \"Job Title is required\",\n });\n return;\n }\n\n if (!userData.email) {\n setError({\n show: 4,\n message: \"Email is required\",\n });\n return;\n }\n\n if (!validateEmail(userData.email)) {\n setError({\n show: 4,\n message: \"Enter valid email\",\n });\n return;\n }\n\n if (!userData.phoneNumber) {\n setError({\n show: 5,\n message: \"Phone number is required\",\n });\n return;\n }\n\n if (!validatePhone(userData.phoneNumber)) {\n setError({\n show: 5,\n message: \"Enter valid phone number\",\n });\n return;\n }\n\n if (!userData.city) {\n setError({\n show: 6,\n message: \"City is required\",\n });\n return;\n }\n\n if (!userData.country) {\n setError({\n show: 7,\n message: \"Country is required\",\n });\n return;\n }\n\n axios.post(\"/Home/Contact\", userData )\n .then(response => {\n const data = response.data;\n\n if(data.success){\n enqueueSnackbar(\"Contact Form Successfully Submitted\", {\n variant:\"success\"\n })\n }\n\n if(!data.success){\n enqueueSnackbar(data.message, {\n variant:\"error\"\n })\n }\n\n setUserData({\n name:\"\",\n companyName:\"\",\n jobTitle:\"\",\n email:\"\",\n phoneNumber:\"\",\n city:\"\",\n country:\"\",\n message:\"\"\n })\n\n }).catch(error => {\n if(error){\n enqueueSnackbar(error.message, {\n variant:\"error\"\n })\n }\n })\n\n\n\n };\n\n const resetError = () => {\n setError({\n show: 0,\n message: \"\",\n });\n };\n\n const validateEmail = (email) => {\n let re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(String(email).toLowerCase());\n };\n\n const validatePhone = (phonenumber) => {\n let re = /^\\d{10}$/;\n return re.test(String(phonenumber));\n };\n\n return (\n
\n \n Are you interested in learn more about our offerings?\n \n \n Contact us by submitting the form below :\n \n
\n {\n resetError();\n setUserData({ ...userData, name: e.target.value });\n }}\n />\n {\n resetError();\n setUserData({ ...userData, companyName: e.target.value });\n }}\n />\n {\n resetError();\n setUserData({ ...userData, jobTitle: e.target.value });\n }}\n />\n {\n resetError();\n setUserData({ ...userData, email: e.target.value });\n }}\n />\n {\n resetError();\n setUserData({\n ...userData,\n phoneNumber: e.target.value,\n });\n }}\n />\n {\n resetError();\n setUserData({ ...userData, city: e.target.value });\n }}\n />\n {\n resetError();\n setUserData({\n ...userData,\n country:e.target.value\n })\n }}\n />\n {\n resetError();\n setUserData({...userData, message:e.target.value})\n }}\n />\n \n Submit\n \n
\n
\n );\n};\n\nexport default ContactUs;\n","import Pricing from './Pricing'\nexport default Pricing;","import { Typography, useMediaQuery } from '@material-ui/core';\nimport React, {useEffect} from 'react'\nimport styles from './style'\nimport ContactLogo from '../../assets/logos/salesteam/contact-icon.svg'\nimport PurchaseLog from '../../assets/logos/salesteam/purchase-icon.svg'\nimport SuccessLogo from '../../assets/logos/salesteam/success-icon.svg'\nimport TrainingLogo from '../../assets/logos/salesteam/training-icon.svg'\nimport ProgressLogo from '../../assets/logos/salesteam/progess-icon.svg'\nimport StudentEngagementLogo from '../../assets/logos/salesteam/student-icon.svg'\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';\nimport BannerLogo from '../../assets/logos/salesteam/sales_banner.png'\nimport BannerLogo1 from '../../assets/logos/salesteam/sales_banner_2.png'\n\nimport IndividualPathway from '../Home/LearningPathway/IndividualPathway'\nimport ContactUs from '../ContactUs'\nimport { theme } from '../../theme'\nimport { useLocation } from 'react-router-dom';\nimport { scroller } from 'react-scroll'\n\nconst Pricing = () => {\n\n const classes = new styles();\n const isMathced = useMediaQuery(theme.breakpoints.down('xs'));\n const isTablet = useMediaQuery(theme.breakpoints.down('sm'));\n const location = useLocation();\n \n\n useEffect(() => {\n if(location.hash){\n scroller.scrollTo(\"contactus\", {\n smooth:true,\n })\n }\n }, [location])\n\n\n const renderSalesData = () => {\n const data = [\n {\n logo: ContactLogo,\n title: \"Contact Us\",\n description: \"Upon being contacted, our Sales team reaches out and understands the customer needs. Our sales channel includes partners all over the world.\"\n },\n {\n logo: PurchaseLog,\n title: \"Quote & Purchase\",\n description: \"We have various options aligned to the customer’s needs so the customer can select the preferred option and complete their purchase.\"\n },\n {\n logo: SuccessLogo,\n title: \"Success Planning\",\n description: \"After subscribing to a specific package, customers are onboarded by our Customer Success team and then guided to set their success metrics for the upcoming year.\"\n },\n {\n logo: TrainingLogo,\n title: \"Educator Training\",\n description: \"Customers can contact their Customer Success team for training and deployment assistance.\"\n },\n {\n logo: StudentEngagementLogo,\n title: \"Student Engagement\",\n description: \"Now it's time for your students to get started with their learning and preparation for the many certification programs that our learning solutions map to. \"\n },\n {\n logo: ProgressLogo,\n title: \"Progress & Checkup\",\n description: \"We are with you every step of the way! Checkups are setup with our Customer Success team to gauge annual performance based on user activity and success metrics.\"\n },\n ]\n return data;\n }\n\n return (\n
\n \n We offer curriculums, certifications and end to end education solutions.\n \n
\n \n Our prospective customers can expect the following after contacting us:\n \n
\n {renderSalesData().map((value, i) => {\n return \n \n {renderSalesData().length - 1 !== i ?\n isMathced ? :\n \n : \"\"}\n \n })}\n
\n\n\n
\n
\n
\n \n You can join our reseller team!\n \n \n We find that business is more fun with partnerships and we are always looking to add to our global channel. We do have many partnerships in place, but we always try and include firms in local countries and geographies who can help bring Jasperactive to local economies.\n \n \n We travel around the planet every year and make a point of being able to meet our partners in person at least once a year.\n \n \n Reseller Benefits include:\n \n
    \n
  • Shared Margin
  • \n
  • Customizable Marketing Library
  • \n
  • Translation support
  • \n
  • Sales Training
  • \n
  • Marketing Training
  • \n
  • Collaboration on social media
  • \n
\n\n
\n \n \n \n
\n \n
\n )\n}\n\n\nexport default Pricing;\n","import PrivateRoutes from './PrivateRoutes'\nexport default PrivateRoutes;","import React from 'react'\nimport { Route, Redirect } from 'react-router-dom';\nimport { useAuthentication } from '../../providers/AuthenticationProvider'\n\n\nconst PrivateRoutes = ({component: Component, location, ...restProps }) => {\n \n const { user } = useAuthentication();\n return (\n {\n if (user) return ;\n return (\n \n );\n }}\n {...restProps}\n />\n );\n}\n\n\nexport default PrivateRoutes;\n","import { makeStyles } from '@material-ui/core'\n\nconst styles = makeStyles((theme) => ({\n container:{\n position:\"fixed\",\n bottom:0,\n left:0,\n right:0,\n backgroundColor:theme.palette.primary.main,\n zIndex:2,\n display:\"flex\",\n alignItems:\"center\",\n minHeight:theme.spacing(8),\n height:\"fit-content\"\n },\n title:{\n ...theme.typography.subtitle2,\n color:theme.palette.common.white,\n textAlign:\"center\"\n },\n btn:{\n ...theme.typography.subtitle2,\n width:\"fit-content\",\n backgroundColor:theme.palette.common.white,\n color:theme.palette.primary.main,\n marginLeft:theme.spacing(1),\n '&:hover':{\n backgroundColor:theme.palette.common.white\n }\n },\n privacyTitle:{\n ...theme.typography.h2,\n color:theme.palette.grey[500],\n fontWeight:500,\n marginTop:theme.spacing(2),\n marginBottom:theme.spacing(2)\n },\n privacyDesc:{\n ...theme.typography.body1,\n marginBottom:theme.spacing(2)\n },\n privacyHeader:{\n ...theme.typography.h4,\n marginTop:theme.spacing(3)\n },\n pdf:{\n boxShadow:\"0px 0px 6px #000000\",\n marginTop:theme.spacing(1)\n }\n}));\n\n\nexport default styles;","import React, { useState, useEffect } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n Typography,\n Button,\n Box,\n useTheme,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport { useAuthentication } from \"../../providers/AuthenticationProvider\";\nimport styles from \"./styles\";\n\nconst PrivacyPolicy = () => {\n const classes = styles();\n const [show, setShow] = useState(true);\n const { user } = useAuthentication();\n const history = useHistory();\n const theme = useTheme();\n const isMatched = useMediaQuery(theme.breakpoints.down(\"sm\"));\n useEffect(() => {\n if(document.cookie.split(';').some((item) => item.trim().startsWith('email='))){\n setShow(false);\n }else{\n setShow(true);\n }\n\n }, [user]);\n\n const setCookie = () => {\n let userEmail = \"email\";\n if (user) {\n userEmail = user.email;\n }\n let date = new Date();\n date.setTime(date.getTime() + 30 * 24 * 60 * 60 * 1000);\n var expires = \"expires=\" + date.toUTCString();\n document.cookie = \"email=\" + userEmail + \";\" + expires + \";path=/\";\n setShow(false);\n };\n\n return (\n <>\n {show ? (\n
\n \n \n We use cookies to ensure that we give you the best experience on\n our website. If you continue to use this site we will assume that\n you are happy with it.\n \n \n \n {\n history.push(\"/statement-of-privacy\");\n }}\n >\n Privacy Policy\n \n \n \n \n {\n setShow(false);\n }}\n />\n \n
\n ) : (\n \"\"\n )}\n \n );\n};\n\nexport default PrivacyPolicy;\n","import React, { useEffect } from \"react\";\nimport { useLocation, Link } from \"react-router-dom\";\nimport styles from \"./styles\";\nimport { Box, Typography } from \"@material-ui/core\";\nimport { theme } from \"../../theme\";\nimport { scroller } from \"react-scroll\";\n\nconst PrivacyNotice = () => {\n const { pathname, hash } = useLocation();\n const classes = styles();\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n\n useEffect(() => {\n if(hash === \"#dpa\"){\n scroller.scrollTo(\"dpa\", {\n smooth:true\n })\n }\n }, [hash])\n\n return (\n \n Privacy\n \n CCI Learning Inc., and its subsidiaries (Jasper Learning Inc., CCI\n Learning Solutions Inc. and CCI Learning Solutions Inc. (Arizona),\n Collectively, “CCI” or “we” or “our”), take privacy, systems integrity\n and security very seriously and are committed to the highest standards\n of privacy and data security and compliance with standards, laws and our\n contractual obligations.\n \n \n At CCI we follow industry standard policies and local privacy and\n security laws and regulations in the countries we serve. Privacy and\n security of our customers’, our staff and end-users data (especially\n Personally Identifiable Information) and ability to access and use our\n services in a secure environment is paramount to us.\n \n \n CCI and our Services collect, hold, manage and process data including\n personal information in the capacity of a Controller or Processor as\n follows:\n \n \n Controller\n \n An entity that determines the purposes and means of processing of\n personal data.\n \n \n \n In relationship to our web sites or our dealing with customer sales and\n fulfillment, we act as Controller and are solely responsible for\n determining the purposes and means of the processing of personal data\n and are accountable to such persons for which we have asked, accepted or\n hold personal data.  Our policies and practices governing our collection\n and maintenance of personal data as Controller are set out in our{\" \"}\n Privacy Policy\n \n \n Processor\n \n An entity that processes personal data based on the instructions of a\n Controller\n \n \n \n In relationship to our Software Services such as Jasperactive, we are\n considered a Processor and we hold or process personal data solely on\n behalf of and at the direction of the Services’ controller pursuant to a\n data processing agreement (DPA).  The DPA is a part of our Master\n Services Agreement and included therewith.{\" \"}\n \n \n Under a DPA with customers who purchase our Jasperactive Service, we\n agree to host and manage our Jasperactive Service on behalf of the\n customer who is considered the Controller of personal information and\n shall so determine in accordance with their own Privacy Policies, the\n personal information they record therein and the policies related\n thereto. Under a DPA, CCI pledges to only process or host as our\n customer directs and to maintain security and access to the Service for\n our customer and any information they so provide to the Service in\n accordance with our Master Services Agreement.\n \n \n \n Data Processing Agreements{\" \"}\n \n
    \n
  • \n EU General Data Protection Regulation{\" \"}\n Data Processing Agreement\n
  • \n
  • \n Washington State –{\" \"}\n Student Data Privacy Agreement offer (09 01 2019){\" \"}\n
  • \n
\n
\n \n Student Data Privacy Pledge\n \n \n At CCI, our business is focused on providing superior learning products\n to our customers who are educational or training institutions, including\n corporate and government departments that teach or train students. We\n support educators and students and their educational needs and their\n schools’ or educational institutions’ operations and have understand the\n responsibility for maintaining the strictest policies, processes for the\n protection of Student Personal Data. As such in our operations,\n agreements and policies we undertake to process Student Data in\n accordance with our Student Privacy Pledge.\n \n
\n );\n};\n\nexport default PrivacyNotice;\n","import React, { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport styles from \"./styles\";\nimport { Box, Typography } from \"@material-ui/core\";\n\nexport default function TermsOfService() {\n const { pathname } = useLocation();\n const classes = styles();\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n return (\n \n Terms Of Service\n \n Jasper Learning Inc., and its affiliates (“Jasper”, “us”, “we” or “our”)\n terms of services as used in these Jasper Terms of Use (“Terms”) refer\n to the products and services, websites, content, databases, software,\n technologies, and tools (“Services”) delivered by Jasper and that link\n or refer to these Terms or that are delivered through a website or\n server or service that links or refers to these Terms.\n \n \n Your access to and use of the Services is based on your acceptance of\n and compliance with these Terms, which apply to all visitors, users and\n others who access or use the Services.\n \n \n Please read these Terms carefully before using the Services.\n \n \n By accessing or using the Services you agree to be bound by these Terms\n and accept all legal consequences. If you do not agree to the Terms, in\n whole or in part, please do not use the Services.\n \n \n By accessing, browsing, registering for, and/or using any Service, or by\n accepting these Terms through an “I Accept” check-box or similar method,\n you acknowledge that you have read, understood, and agree to be bound by\n and comply with all terms in this statement. You may also agree to these\n Terms by physically or electronically signing an Order (as defined\n below) that incorporates these Terms. These Terms, along with any Order,\n form a legally binding agreement between you and JASPER.\n \n \n These Terms apply exclusively to your use of the Services and do not\n alter the terms or conditions of any other agreement you may have with\n us.\n \n \n The use of certain of our Services may be subject to added terms and\n conditions which may be presented before purchase or use.\n \n \n If you are accepting these Terms on behalf of another organization or\n entity, you represent that you are duly authorized to bind that\n organization or entity to these Terms.\n \n Your Privacy\n \n We are committed to protecting your privacy and developing technology\n that gives you the most powerful and safe online experience. Please read\n the Jasper Statement of Privacy (“Statement of Privacy”). The Statement\n of Privacy applies to the Jasper web site and the Services we provide\n and governs data collection and usage. To the extent provided by law, by\n agreeing to these Terms, you consent to the data practices described in\n the Statement of Privacy. In some cases, we will provide separate notice\n and request your consent as referenced in the Statement of Privacy.\n \n \n Your Account/ Jasperactive Accounts\n \n \n Jasperactive accounts are for personal non-commercial purposes only. You\n may not authorize others to use your account, and you may not assign or\n transfer your account.\n \n \n You must keep your username and password confidential. You are\n responsible for all activities and liabilities associated with your\n account. You agree to immediately notify Jasper of any unauthorized use\n of your account of which you are aware.\n \n \n Institutional Licenses\n \n \n This Section applies only if an applicable Order specifies that you are\n acquiring a Service subscription for an institution.\n \n \n Subject to your payment of the applicable fees and taxes, you may\n authorize your students, faculty, and administrative staff\n (collectively, “Authorized Users”) to access and use the applicable\n Service for non-commercial educational or instructional use, on\n condition that those Authorized Users accept these Terms before or\n during their first use of that Service. For Licenses that include a\n limit on the number of Authorized Users, Authorized Users includes all\n individuals authorized to use the Service, regardless of whether any\n such individual is actively using that Service at a particular time. You\n shall ensure that Authorized Users and any other person that uses the\n Service through the use of your account comply with these Terms and the\n Supplementary Terms. You shall take all reasonable precautions necessary\n to safeguard against unauthorized access and use of the Service through\n your account, including ensuring that an Authorized User ceases use of\n the Service after that Authorized User is no longer associated with your\n institution.\n \n \n Accounts of Minors\n \n \n By using the Services, you represent that you have either reached the\n age of “majority” where you live or have valid parent or legal guardian\n consent to be bound by these Terms. If you are the parent or legal\n guardian of a minor who creates an account, you and the minor accept and\n agree to be bound by these Terms and are responsible for all use of such\n account or Services, including purchases, whether the minor’s account is\n now open or created later.\n \n \n Your Use of Service (Code of Conduct)\n \n \n By agreeing to these Terms, you’re agreeing that, when using the\n Services, you will follow these rules:\n \n \n Do not do anything illegal.\n \n \n Do not engage in any activity that exploits, harms, or threatens to harm\n anyone.\n \n \n Do not engage in activity that is fraudulent, false or misleading (e.g.\n impersonating someone else, manipulating the Services to increase test\n scores, or affect rankings, ratings, or comments).\n \n \n Do not circumvent any restrictions on access to or availability of the\n Services.\n \n \n Do not engage in activity that is harmful to you, the Services, or\n others (e.g. transmitting viruses, stalking, posting terrorist content,\n communicating hate speech, or advocating violence against others).\n \n \n Do not engage in activity that violates the privacy of others.\n \n \n Do not help others break these rules.\n \n \n If you violate these Terms, we will stop providing Services to you or we\n may close your account.\n \n \n Third Party Software Reliance and Updates\n \n \n [Applicable to all FORM FACTORS AND COMPANIES]\n \n \n We are committed to ensuring our courseware mirrors the associated\n application to the fullest extent possible. Although we are vigilant\n about ensuring the highest level of accuracy in our courses, we do not\n guarantee that software updates will not render portions of the content\n inaccurate. We strive to address relevant software updates on a yearly\n basis (for the most current version of the software only).\n \n \n Software vendors that we work with to bring our users the best user\n experience in courseware are constantly working on improvements and\n refinements into their applications. New features, new functionality and\n revised user interfaces are developed and pushed out to users\n periodically. While this means you get the latest functionality, it also\n means your application may differ from the provided learning content.\n For instance, the appearance of the interface or the exact sequence of\n steps required to perform particular tasks may have changed since the\n time of writing. In such cases, use the listed steps as a guideline,\n make adjustments as required, and check our web site periodically for\n courseware updates.\n \n \n The information in Jasper’s courseware was accurate at the time of\n publishing and is distributed on an “as is” basis, without warranty.\n While every precaution has been taken in the preparation of these\n Services, neither the author nor Jasper shall have any liability to any\n person or entity with respect to any liability, loss, or damage caused\n or alleged to be caused directly or indirectly by the instructions\n contained in these Services or by the computer software and hardware\n products described therein.\n \n \n The reader is expressly warned that software vendors we work with and\n develop courseware for may change, update, or enhance the product and/or\n program described herein at any time.\n \n \n All examples and references in our courseware are fictitious, the dates,\n screen captures, tax tables, and other content may vary at time of use.\n \n Jasperactive\n \n Jasperactive versions and updates are optimized for use with the\n specified application software version and build. Please visit our\n Change Log web page located on our support site and be sure to stay up\n to date with Jasperactive Technical Requirements.\n \n \n Violation of Rules and Regulations\n \n \n We may seek all remedies available at law and in equity for violations\n of the rules and regulations set forth in these Terms and our Services,\n including the right to block access from a particular Internet address\n to the Services.\n \n Trademarks\n \n All trademarks, service marks and logos on the Services are the property\n of their owners. We own various trademarks, service marks, and logos\n used on the Services, including Jasper Learning and Jasperactive.\n \n \n Unauthorized use of any trademarks, service marks or logos used on the\n Services may be a violation of national and international trademark\n laws. You must obtain our written permission before using any of our\n trademarks, service marks or logos.\n \n Copyright\n \n This Service is protected by Canadian, U.S., and international copyright\n laws. You may not modify, reproduce or distribute the design or layout\n of the Services or individual sections of the design or layout of the\n Services or our logos without our prior written permission.\n \n \n Disclaim Warranties\n \n \n TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, ALL CONTENT ON THIS\n WEB SITE IS PROVIDED TO YOU “AS-IS AND “AS AVAILABLE,” WITH ALL FAULTS\n AND WITHOUT WARRANTY OF ANY KIND AND WE DISCLAIM ALL WARRANTIES WITH\n RESPECT TO THE SITE, EITHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY RIGHTS. WE MAKE NO WARRANTY\n AS TO THE ACCURACY, COMPLETENESS, CURRENCY OR RELIABILITY OF ANY CONTENT\n AVAILABLE THROUGH THE SITE. YOU ARE RESPONSIBLE FOR VERIFYING ANY\n INFORMATION BEFORE RELYING ON IT. USE OF THE SITE IS AT YOUR SOLE RISK.\n \n \n WE MAKE NO REPRESENTATIONS OR WARRANTIES THAT USE OF THE SITE WILL BE\n UNINTERRUPTED, COMPLETELY SECURE OR ERROR-FREE. You are responsible for\n taking all precautions necessary to ensure that any content you may\n obtain from the site is free of viruses.\n \n \n Limitation of Liability\n \n \n WE SPECIFICALLY DISCLAIM ANY LIABILITY, WHETHER BASED IN CONTRACT, TORT,\n STRICT LIABILITY OR OTHERWISE, FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n CONSEQUENTIAL OR SPECIAL DAMAGES ARISING OUT OF OR IN ANY WAY CONNECTED\n WITH ACCESS TO OR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGES, INCLUDING RELIANCE BY ANY PARTY ON ANY\n CONTENT OBTAINED THROUGH USE OF THIS SITE, OR THAT ARISES IN CONNECTION\n WITH MISTAKES OR OMISSIONS IN, OR DELAYS IN TRANSMISSION OF, INFORMATION\n TO OR FROM THE USER, INTERRUPTIONS IN TELECOMMUNICATIONS CONNECTIONS TO\n THE SITE OR VIRUSES, WHETHER CAUSED IN WHOLE OR IN PART BY NEGLIGENCE,\n ACTS OF GOD, TELECOMMUNICATIONS FAILURE, THEFT OR DESTRUCTION OF, OR\n UNAUTHORIZED ACCESS TO THE WEB SITE, OR RELATED INFORMATION OR PROGRAMS.\n \n \n Some jurisdictions do not allow exclusions of liability for certain\n types of damages. Accordingly, some of the above limitations may not\n apply to you to the extent prohibited by law. In such cases, our\n liability is limited to the fullest extent permitted by applicable law.\n \n Indemnity\n \n You indemnify us and our subsidiaries, affiliates, officers, directors,\n agents, employees, partners, licensors and licensees from any claim or\n demand, including reasonable attorneys’ fees, made by any third party\n due to or arising out of your use of the Services, your violation of\n these Terms, or your violation of any rights of another. These include:\n (a) legal and accounting fees resulting from your use of the Services;\n (b) your breach of any of these Terms; and (c) anything you post on or\n upload to our site or Services.\n \n \n Linked Internet Sites\n \n \n Our Jasperactive Service does not contain any links to outside sites\n other than links to such additional external products that you, as our\n customer, has purchased and which has been accordingly linked to your\n Jasperactive Service.\n \n Modifications\n \n We may modify the Services and the rules and regulations governing their\n use, at any time. We will post modifications in the Services’ terms of\n service and revise the “last updated” date at the top of its page.\n Changes are effective once the revised information is posted on the\n Site. Your continued use of the Site after any such changes are posted\n constitutes acceptance of those changes.\n \n \n We may make changes in the products and services that are considered\n Services at any time.\n \n \n Service Availability\n \n \n The Services or material or products offered through the Services may be\n unavailable from time to time, may be offered for a limited time, or may\n vary depending on your region or device.\n \n \n We strive to keep the Services up and running; however, all online\n services suffer occasional disruptions and outages, and Jasper is not\n liable for any disruption or loss you may suffer as a result. In the\n event of an outage, you may not be able to retrieve your content or data\n that you’ve stored.\n \n \n Service Availability\n \n \n Customer support for some Services is available at{\" \"}\n \n http://support.jasperactive.com.\n {\" \"}\n Certain Services may offer separate or additional customer support,\n subject to the terms available with their sale.\n \n Termination\n \n If your Services are canceled (whether by you or us), first your right\n to access the Services stops immediately and your license to the\n software related to the Services ends. Second, we will delete data or\n your content associated with your Service or will otherwise disassociate\n it from you and your Jasper account (unless we are required by law to\n keep it, return it, or transfer it to you or a third party identified by\n you). As a result, you may no longer be able to access any of the\n Services (or your content or information) that you’ve stored on those\n Services.\n \n \n Governing Law and General Principals\n \n \n These Terms and any claims relating to the information available on this\n site are governed by the laws of British Columbia and the laws of Canada\n enforceable in British Columbia.\n \n \n We operate our web site from our offices and third-party hosting\n services within Canada. We make no representation that the information\n in our web site is appropriate or available for use in other locations,\n and access to our web site from territories where the contents of our\n web site may be illegal is prohibited. Those who choose to access our\n web site from other locations do so on their own initiative and are\n responsible for compliance with applicable local laws.\n \n \n );\n}\n","import React, { useEffect } from \"react\";\nimport { Box, Typography } from \"@material-ui/core\";\nimport { useLocation } from \"react-router-dom\";\nimport styles from \"./styles\";\n\nconst DataProcessingAgreement = () => {\n const pathname = useLocation();\n const classes = styles();\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n return (\n \n \n Data Processing Agreement — Jasper Learning Inc.\n \n \n This Data Processing Agreement (“Agreement“) forms part\n of the Contract for Services (“Principal Agreement“)\n between\n \n \n ____________________________\n
\n ____________________________\n
\n ____________________________\n
\n \n (the “Company”) and\n \n \n Jasper Learning Inc.\n
180 – 8621 201st Street\n
Langley, B.C. V2Y 0G9\n
(the “Data Processor”)\n
(together as the “Parties”)\n
\n WHEREAS\n \n (A) The Company acts as a Data Controller and as such it is the entity\n which determines the purposes and means of the Processing of Company\n Personal Data. Company shall, in its use of the Services, Process\n Company Personal Data in accordance with the requirements of Data\n Protection Laws and Regulations, including any applicable requirement to\n provide notice to Data Subjects of the use of Data Processor as\n Processor.\n \n \n (B) The Company wishes to subcontract certain Services, which imply the\n processing of personal data, to the Data Processor.\n \n \n (C) The Parties seek to implement a data processing agreement that\n complies with the requirements of the current legal framework in\n relation to data processing and with the Regulation (EU) 2016/679 of the\n European Parliament and of the Council of 27 April 2016 on the\n protection of natural persons with regard to the processing of personal\n data and on the free movement of such data, and repealing Directive\n 95/46/EC (General Data Protection Regulation).\n \n \n (D) The Parties wish to lay down their rights and obligations.\n \n \n IT IS AGREED AS FOLLOWS:\n \n \n 1. Definitions and Interpretation
\n 1.1 Unless otherwise defined herein, capitalized terms and expressions\n used in this Agreement shall have the following meaning:\n
1.1.1 “Agreement” means this Data Processing Agreement and all\n Schedules;\n
1.1.2 “Company Personal Data” means any Personal Data Processed\n by a Contracted Processor on behalf of Company pursuant to or in\n connection with the Principal Agreement;\n
1.1.3 “Contracted Processor” means a Subprocessor;\n
1.1.4 “Data Protection Laws” means EU Data Protection Laws and,\n to the extent applicable, the data protection or privacy laws of any\n other country;\n
1.1.5 “EEA” means the European Economic Area;\n
1.1.6 “EU Data Protection Laws” means EU Directive 95/46/EC, as\n transposed into domestic legislation of each Member State and as\n amended, replaced or superseded from time to time, including by the GDPR\n and laws implementing or supplementing the GDPR;\n
\n 1.1.7 “GDPR” means EU General Data Protection Regulation 2016/679;\n
1.1.8 “Data Transfer” means:\n
1.1.8.1 a transfer of Company Personal Data from the Company to a\n Contracted Processor; or\n
\n 1.1.8.2 an onward transfer of Company Personal Data from a Contracted\n Processor to a Subcontracted Processor, or between two establishments of\n a Contracted Processor, in each case, where such transfer would be\n prohibited by Data Protection Laws (or by the terms of data transfer\n agreements put in place to address the data transfer restrictions of\n Data Protection Laws);\n
1.1.9 “Services” means the Jasperactive services the Company\n provides.\n
1.1.10 “Subprocessor” means any person appointed by or on behalf\n of Processor to process Personal Data on behalf of the Company in\n connection with the Agreement.\n
1.2 The terms, “Commission”, “Controller”, “Data Subject”,\n “Member State”, “Personal Data”, “Personal Data Breach”, “Processing”\n and “Supervisory Authority” shall have the same meaning as in the GDPR,\n and their cognate terms shall be construed accordingly.\n
\n 2. Processing of Company Personal Data\n
2.1 Processor shall:\n
2.1.1 comply with all applicable Data Protection Laws in the\n Processing of Company Personal Data; and\n
2.1.2 shall treat Company Personal Data as Confidential\n Information and shall Process Company Personal Data on behalf of and\n only in accordance with Company’s documented instructions for the of\n processing in accordance with the Agreement and applicable Order Form(s)\n and processing initiated by end-users in their use of the Services.\n
\n 2.2 The Company instructs Processor to process Company Personal Data.\n
3. Processor Personnel Processor shall take reasonable steps to\n ensure the reliability of any employee, agent or contractor of any\n Contracted Processor who may have access to the Company Personal Data,\n ensuring in each case that access is strictly limited to those\n individuals who need to know / access the relevant Company Personal\n Data, as strictly necessary for the purposes of the Principal Agreement,\n and to comply with Applicable Laws in the context of that individual’s\n duties to the Contracted Processor, ensuring that all such individuals\n are subject to confidentiality undertakings or professional or statutory\n obligations of confidentiality.\n
\n 4. Security\n
4.1 Taking into account the state of the art, the costs of\n implementation and the nature, scope, context and purposes of Processing\n as well as the risk of varying likelihood and severity for the rights\n and freedoms of natural persons, Processor shall in relation to the\n Company Personal Data implement appropriate technical and organizational\n measures to ensure a level of security appropriate to that risk,\n including, as appropriate, the measures referred to in Article 32(1) of\n the GDPR.\n
4.2 In assessing the appropriate level of security, Processor\n shall take account in particular of the risks that are presented by\n Processing, in particular from a Personal Data Breach.\n
\n 5. Subprocessing\n
\n 5.1 Processor shall not appoint (or disclose any Company Personal Data\n to) any Subprocessor unless required or authorized by the Company.\n
6. Data Subject Rights\n
6.1 Taking into account the nature of the Processing, Processor\n shall assist the Company by implementing appropriate technical and\n organisational measures, insofar as this is possible, for the fulfilment\n of the Company obligations, as reasonably understood by Company, to\n respond to requests to exercise Data Subject rights under the Data\n Protection Laws.\n
6.2 Processor shall:\n
6.2.1 promptly notify Company if it receives a request from a\n Data Subject under any Data Protection Law in respect of Company\n Personal Data; and\n
\n 6.2.2 ensure that it does not respond to that request except on the\n documented instructions of Company or as required by Applicable Laws to\n which the Processor is subject, in which case Processor shall to the\n extent permitted by Applicable Laws inform Company of that legal\n requirement before the Contracted Processor responds to the request.\n
7. Personal Data Breach\n
7.1 Processor shall notify Company without undue delay upon\n Processor becoming aware of a Personal Data Breach affecting Company\n Personal Data, providing Company with sufficient information to allow\n the Company to meet any obligations to report or inform Data Subjects of\n the Personal Data Breach under the Data Protection Laws.\n
7.2 Processor shall co-operate with the Company and take\n reasonable commercial steps as are directed by Company to assist in the\n investigation, mitigation and remediation of each such Personal Data\n Breach.\n
8. Data Protection Impact Assessment and Prior Consultation\n Processor shall provide reasonable assistance to the Company with any\n data protection impact assessments, and prior consultations with\n Supervising Authorities or other competent data privacy authorities,\n which Company reasonably considers to be required by article 35 or 36 of\n the GDPR or equivalent provisions of any other Data Protection Law, in\n each case solely in relation to Processing of Company Personal Data by,\n and taking into account the nature of the Processing and information\n available to, the Contracted Processors.\n
9. Deletion or return of Company Personal Data\n
9.1 Subject to this section 9 Processor shall promptly and in any\n event within 10 business days of the date of cessation of any Services\n involving the Processing of Company Personal Data (the “Cessation\n Date”), delete and procure the deletion of all copies of those Company\n Personal Data.\n
10. Audit rights\n
10.1 Subject to this section 10, Processor shall make available\n to the Company on request all information necessary to demonstrate\n compliance with this Agreement, and shall allow for and contribute to\n audits, including inspections, by the Company or an auditor mandated by\n the Company in relation to the Processing of the Company Personal Data\n by the Contracted Processors.\n
10.2 Information and audit rights of the Company only arise under\n section 10.1 to the extent that the Agreement does not otherwise give\n them information and audit rights meeting the relevant requirements of\n Data Protection Law.\n
11. Data Transfer\n
11.1 The Processor may transfer or authorize the transfer of Data\n to countries outside the EU and/or the European Economic Area (EEA)\n without the prior written consent of the Company. If personal data\n processed under this Agreement is transferred from a country within the\n European Economic Area to a country outside the European Economic Area,\n the Parties shall ensure that the personal data are adequately\n protected. To achieve this, the Parties shall, unless agreed otherwise,\n rely on EU approved standard contractual clauses for the transfer of\n personal data which form the basis for this Agreement.\n
12. General Terms\n
12.1 Confidentiality. Each Party must keep this Agreement and\n information it receives about the other Party and its business in\n connection with this Agreement (“Confidential Information”) confidential\n and must not use or disclose that Confidential Information without the\n prior written consent of the other Party except to the extent that:\n
(a) disclosure is required by law;\n
(b) the relevant information is already in the public domain.\n
12.2 Notices. All notices and communications given under this\n Agreement must be in writing and will be delivered personally, sent by\n post or sent by email to the address or email address set out in the\n heading of this Agreement at such other address as notified from time to\n time by the Parties changing address.\n
13. Governing Law and Jurisdiction\n
13.1 This Agreement is governed by the laws of the Province of\n British Columbia.\n
\n 14. Application\n
14.1 If the Company signing this Agreement is a party to a Master\n Sales Agreement or to an Order Form with the Data Processor, this\n Agreement is an addendum to and forms part of that Master Services\n Agreement or Order Form.\n
14.1 If the Company signing this Agreement is neither a party to\n an Order Form nor a Master Services Agreement, this Agreement is not\n valid and is not legally binding on the Data Processor.\n
\n 15. Limitation of Liability\n
14.1 This Agreement as an addendum to and part of that Master\n Services Agreement or Order Form is subject to the ‘Limitation of\n Liability’ section of the Master Sales Agreement, and any reference in\n such section to the liability of a party means the aggregate liability\n of that party and all of its Affiliates under the Master Sales Agreement\n and all Data Processing Agreements together.\n
\n \n IN WITNESS WHEREOF, this Agreement is entered into with effect from the\n date first set out below.\n \n Your Company\n Signature ____________________________\n Name: _______________________________\n Title: _________________________________\n Date Signed: _________________________\n \n Jasper Learning Inc.\n \n Signature _____________________________\n Name ________________________________\n Title CFO______________________________\n Date Signed ___________________________\n
\n );\n};\n\nexport default DataProcessingAgreement;\n","export default __webpack_public_path__ + \"static/media/student-data-privacy-agreement.4e81e49a.pdf\";","import React, { useState, useEffect } from \"react\";\nimport { useHistory, useLocation} from 'react-router-dom';\nimport { Box, IconButton, Button, Typography, useMediaQuery } from \"@material-ui/core\";\nimport KeyboardBackspaceIcon from \"@material-ui/icons/KeyboardBackspace\";\nimport { Document, Page } from \"react-pdf/dist/esm/entry.webpack\";\nimport { pdfjs } from 'react-pdf';\nimport StudentAgreementPDF from \"../../assets/other/student-data-privacy-agreement.pdf\";\nimport styles from \"./styles\";\nimport { theme } from \"../../theme\";\n\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.min.js`;\n\nconst StudentDataPrivacy = () => {\n const classes = styles();\n const history = useHistory();\n const pathname = useLocation();\n const isMobile = useMediaQuery(theme.breakpoints.down('xs'));\n const [numPages, setNumPages] = useState(null);\n const [pageNumber, setPageNumber] = useState(1);\n\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n const onDocumentLoadSuccess = ({ numPages }) => {\n setNumPages(numPages);\n };\n\n const handlePdfNextPage = () => {\n if(pageNumber < numPages){\n setPageNumber(pageNumber + 1);\n }\n }\n\n const handlePdfPrevPage = () => {\n if(pageNumber > 1){\n setPageNumber(pageNumber - 1);\n }\n }\n\n return (\n \n { history.goBack(); }} >\n \n \n \n \n \n \n \n \n {pageNumber} / {numPages}\n \n \n \n \n );\n};\n\nexport default StudentDataPrivacy;\n","import React, {useEffect} from \"react\";\nimport {useLocation} from 'react-router-dom'\nimport { Link } from \"react-router-dom\";\nimport { Box, Typography } from \"@material-ui/core\";\nimport styles from \"./styles\";\n\nconst StatementOfPrivacy = () => {\n const { pathname } = useLocation();\n const classes = styles();\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n return (\n \n \n STATEMENT OF PRIVACY\n \n \n October 14, 2020\n \n \n At Jasper Learning Inc. (“Jasper, “we”, “us” or “our”) your privacy is\n important to us. This Statement of Privacy explains our policies\n regarding the collection, use and disclosure of Personal Information we\n receive from you during your interactions with the products and\n services, websites, content, databases, software, technologies, and\n tools delivered by Jasper and that link or refer to these our Terms of\n Use or that are delivered through a website or server or service that\n links or refers to our Terms of Use and are provided by Jasper\n (“Services”).\n \n \n Jasper offers a wide range of Services used to help educate learners\n worldwide including courseware materials and software students use at\n organizations or in self-directed studies including the following\n Services:\n \n
    \n
  • Our web site at Jasperactive.com and XperienceED.com;
  • \n
  • Jasperactive® Learning Products;
  • \n
  • XperienceED™ Learning Products;
  • \n
\n \n This Privacy Statement does not apply to the extent we process Personal\n Data in the role of a processor or service provider on behalf of our\n customers.\n \n \n Please read the product-specific details in this Statement of Privacy,\n which provide additional relevant information.\n \n \n By using our Services, you consent to the policies described in\n this Statement of Privacy. Please read these policies carefully.\n \n \n PROSSESSING ACTIVITIES\n \n \n This Privacy Statement applies to the processing of Personal Data\n collected by us when you:{\" \"}\n \n
    \n
  • \n Visit our websites that display or link to this Privacy Policy;{\" \"}\n
  • \n
  • Visit our social media pages;
  • \n
  • Visit our offices; or
  • \n
  • As a customer purchase our products or services;
  • \n
  • \n Receive communications from us, including emails, phone calls, texts\n or faxs; or{\" \"}\n
  • \n
  • \n Register for, attend or take part in our events, webinars, or\n contests; or{\" \"}\n
  • \n
\n \n We rely on the following legal grounds to process your Personal Data:\n \n \n PURPOSE AND LEGAL BASIS\n \n \n We rely on the following legal grounds to process your Personal Data:{\" \"}\n \n
    \n
  • \n Performance of a contract.\n
    \n
    We may need to collect and process your Personal Data as\n necessary to perform services subject to a contractual agreement with\n you. For example, (i) when you make an online purchase and we deliver\n you the purchased product; (ii) when you place an order with us as a\n customer by email or phone or other means; and (iii) when you register\n for a webinar or a testing program that we host.\n
    \n
    \n
  • \n
  • \n Consent.\n
    \n
    Where we ask you for your consent, we will only collect and use\n your Personal Data to the extent you have consented to.
    \n
    \n
  • \n
  • \n Legitimate interests.\n
    \n
    We may use your Personal Data for our legitimate interests for\n the purposes of improving our products and services; analysis of our\n performance and the performance of our products and services;\n improving the content of our web sites; and improving our programs and\n systems.\n
  • \n
\n \n COLLECTION OF USER PERSONAL INFORMATION{\" \"}\n \n \n We collect data from you, through our interactions with you and through\n our products. You provide some of this data directly, and some we get by\n collecting data about our interactions, including your use and\n experiences with our products and services. The data we collect depends\n on the context of your interactions with us and the choices you make,\n including your privacy settings and the products and features you use.\n
\n
\n You have choices when it comes to the technology you use and the data\n you share. When we ask you to provide personal data, you can decline.\n
\n
\n Many of our products require some personal data to provide you with a\n service. If you choose not to provide the data that is necessary to\n provide you with a product or feature, you will not be able to use that\n product or feature.\n
\n
In addition, where we need to collect personal data by law or to\n enter into or carry out a contract with you, and you do not provide the\n data, we will not be able to enter into the contract.\n
\n
We request information from you on our order form. To buy from\n us, you must provide contact information (such as name and shipping\n address) and financial information (such as credit card data). This\n information is used for billing purposes and to fill your orders. If we\n have trouble processing an order, we'll use this information to contact\n you.\n
\n
Our Services collect personally identifiable information, such as\n e-mail address, name and date of birth. We also collect anonymous\n demographic information, which is not unique to you, such as your state,\n country, school type, school name, gender, and time zone. We collect\n this information for the benefit of our customers and make it available\n solely to them.\n
\n \n USE OF USER PERSONAL INFORMATION{\" \"}\n \n \n We use the data we collect to provide you products and services, improve\n and update our products, or to market or send promotional communications\n to our customers and potential customers.\n
\n
We also use the data to operate our business and services,\n including customer service and support, analysis of our performance and\n the performance of our products and services and to fulfill legal\n obligations.\n
\n
We share your personal data only with your consent or to complete\n a transaction or provide requested products and services.\n
\n
We use an outside shipping company to ship orders and a credit\n card processing company to bill users for products and services. These\n companies do not retain, share, store or use personally identifiable\n information for any secondary purposes beyond filling your order.\n
\n
We do not sell, trade, or otherwise transfer to outside parties\n your personal information, except where we administer a program on\n behalf of a partner and you register with the partner. “Outside parties”\n does not include trusted third parties and subprocessors who assist us\n in operating our website, conducting our business, or servicing you, so\n long as those parties agree to comply with the provisions of our Privacy\n Policy and our obligations under our Data Processing Agreements. We may\n also release your personal information when we believe release is\n appropriate to comply with the law, enforce our site policies, or\n protect ours or other’s rights, property, or safety.{\" \"}\n
\n \n COLLECTION AND USE OF STUDENT PERSONAL INFORMATION\n \n \n Students studying at organizations, such as schools, and who are not our\n direct customers or product licensees but who use our products and\n services in their studies do so under the direction of that\n organizations’ administrators or designated staff, such as instructors.\n It is at their discretion, for the purpose of tracking and communicating\n their students’ studies and progress, what personal information, if any,\n is entered into our learning systems. We support student data\n accessibility through the student’s school or educational entity.\n Retention of Data within our learning products is governed by our data\n processing agreements and our customers’ data retention policies and\n procedures.\n
\n
We do not track our users’ activities or their Student Personal\n Information residing in our learning systems, nor do we sell, profile,\n engage in behavioral target advertising, make such information public or\n otherwise share such information except with the organizations’\n administrators and their designated staff through their ability to\n access our learning programs.\n
\n
We subscribe to the Student Data Privacy Pledge\n
\n \n CHILDREN’S ONLINE PRIVACY PROTECTION ACT (COPPA) COMPLIANCE\n \n \n We comply with the requirements of COPPA and do not collect personal\n information from children under 13.\n
\n
Our Services are all directed to persons who are at least 13\n years old or older. Where our organizational customers use our products\n or educational systems to instruct or teach students under 13, it is our\n policy that the institution administrators and their designated staff is\n responsible for obtaining verifiable consent from the student’s parents\n regarding the collection and use of Students’ Personal Information by\n the school or other organization. Data Privacy Pledge\n
\n COOKIES\n \n We use \"cookies\" on our web sites and systems. A cookie is a piece of\n data stored on a site visitor's hard drive to help us improve your\n access to our site and identify repeat visitors to our site. For\n instance, when we use a cookie to identify you, you would not have to\n log in a user name more than once, thereby saving time while on our\n site. Cookies can also enable us to track and target the interests of\n our users to enhance the experience on our site. Usage of a cookie is in\n no way linked to any personally identifiable information on our site.\n \n SECURITY \n \n We take precautions to protect your information. When you submit\n sensitive information via the Services, your information is protected\n both online and offline.\n
\n
We secure your personal information from unauthorized access, use\n or disclosure. We secure the personally identifiable information you\n provide on computer servers in a controlled, secure environment,\n protected from unauthorized access, use or disclosure.\n
\n
Wherever we collect sensitive information (such as credit card\n data), that information is encrypted and transmitted to us in a secure\n way through the use of encryption, such as the Secure Socket Layer (SSL)\n protocol. You can verify this by looking for a lock icon in the address\n bar and looking for \"https\" at the beginning of the address of the Web\n page.\n
\n
While we use encryption to protect sensitive information\n transmitted online, we also protect your information offline. Only\n employees who need the information to perform a specific job (for\n example, billing or customer service) are granted access to personally\n identifiable information. The computers/servers in which we store\n personally identifiable information are kept in a secure environment.\n
\n \n THIRD PARTY LINKS{\" \"}\n \n \n Our Services do not contain any links to outside sites other than links\n to such additional external products that you, as our customer, has\n purchased and which has been accordingly linked to such Services.\n \n \n CUSTOMER COMMUNICATIONS\n \n \n From time-to-time, our site, our systems or our staff may contact or\n request information via emails or telephone calls from our customers’\n administrators or contacts solely for the purposes of monitoring or\n improving the use and satisfaction of our products and services or\n providing service announcements of updates.\n
\n
We do not email, telephone, or otherwise communicate directly\n with any user of our Services.\n
\n YOUR RIGHTS\n \n Under privacy legislation, in the jurisdictions we serve, you have\n rights related your Personal Data that we hold. At any time, you may:\n \n
    \n
  • Request access to the information we hold about you.
  • \n
  • \n Ask us to correct any inaccurate or incomplete information we hold\n about.{\" \"}\n
  • \n
  • \n Request us to delete your information from our records (subject to\n legitimate requests and our obligations under other laws and\n regulations.{\" \"}\n
  • \n
  • \n Withdraw consents you have given, where our collection and use was\n based upon such consent.{\" \"}\n
  • \n
\n \n SUCCESSOR ENTITIES{\" \"}\n \n \n Where a successor entity acquires part or of Jasper in future, the\n successor will act in accordance with our Privacy Policy and our Data\n Processing Agreements in order to continue to use or maintain any\n student personally identifiable information or will provide notice of\n changes to the customer(s), and provide the customers) an opportunity to\n opt in to the successor entity’s changed uses or sharing of student\n Personally Identifiable Information. If in that case, there is no\n opt-in, we or our successor entity will delete or de-identify the\n student’s personally identifiable information.\n \n \n CHANGES TO THIS STATEMENT\n \n \n We will occasionally update this Statement of Privacy to reflect our\n internal feedback, customer feedback and applicable legislation. When we\n update the Statement of Privacy we will update the date at the top of\n this Privacy Statement. We encourage you to periodically review this\n Statement of Privacy to be informed of how we are protecting any of your\n information that we hold. Where material changes to our privacy policies\n are made, we will provide advice to users in our cookies and privacy\n policy notice on our web site and user access sites including a button\n for users to provide renewed consent.\n \n \n SEE OUR TERMS OF SERVICES\n \n \n Please also visit our Terms of Service which sets-out the\n use, disclaimers, and limitations of liability governing the use of our\n products and services.\n \n CONTACT US\n \n If there are any questions regarding this privacy policy, you may\n contact us using the information below.\n \n \n If you feel that we are not abiding by this privacy policy, you should\n contact us immediately{\" \"}\n \n {\n window.location.href = \"mailto:privacy@jasperactive.com\";\n }}\n >\n privacy@jasperactive.com\n \n Phone: 1-800-668-1669 or 604-455-0070 \n Fax: 1-866-760-2354 \n\n
\n );\n};\n\nexport default StatementOfPrivacy;\n","import React, { useEffect } from \"react\";\nimport { Box, Typography } from \"@material-ui/core\";\nimport { useLocation } from \"react-router-dom\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport CheckIcon from \"@material-ui/icons/Check\";\nimport styles from \"./styles\";\n\nconst StudentPrivacyPledge = () => {\n const { pathname } = useLocation();\n const classes = styles();\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n return (\n \n \n Jasper Learning Inc., CCI Learning Solutions Inc. Student Privacy Pledge{\" \"}\n \n \n At Jasper Learning Inc. and CCI Learning Solutions Inc. (“Jasper & CCI”,\n “we”, “us” or “our”) your privacy is important to us. At Jasper & CCI,\n we collect and process personal private information in the capacity of\n Controller or Processer. Data collected via our web site and from\n Customers in that capacity we are Controllers and as such we control,\n maintenance and process such Personal Data in accordance with our\n Privacy Policy. As a K-12 School Service Provider, through our\n Jasperactive Learning Programs, we process personal private information\n in the capacity of Processer through our data processing agreement with\n our customer.\n
\n
As a K-12 School Service Provider we are honored to be entrusted\n by educators and families to support their educational needs and school\n operations. As a School Service Provider, we take responsibility to both\n support the effective use of student information and safeguard student\n privacy and information security.\n
\n
As a School Service Provider, we understand it is critical that\n schools and School Service Providers build trust by effectively\n protecting the privacy of student information and communicating with\n parents about how student information is used and safeguarded. Student\n Personally Identifiable Information is provided by students, their\n parents, and their schools; it should be used to serve and support\n students’ best interests.\n
\n
In accordance with our Data Processing Agreement with our\n Customers (Schools and School Boards or Districts) and our\n responsibilities thereunder, we pledge to carry out responsible\n stewardship and appropriate use of Student PII according to the\n commitments below and in adherence to all laws applicable to us as\n School Service Providers and commit that:\n
\n \n \n \n We will not collect, maintain, use or share Student PII beyond that\n needed for authorized educational/school purposes, or as authorized by\n the parent/student.{\" \"}\n \n \n \n \n \n We will not sell student PII.\n \n \n \n \n \n We will not use or disclose student information collected through an\n educational/school service (whether personal information or otherwise)\n for behavioral targeting of advertisements to students.\n \n \n \n \n \n We will not build a personal profile of a student other than for\n supporting authorized educational/school purposes or as authorized by\n the parent/student.\n \n \n \n \n \n We will not make material changes to School Service Provider education\n privacy policies without first providing prominent notice to the users\n and/or account holder(s) (i.e., the institution/agency, or the\n parent/student when the information is collected directly from the\n student with student/parent consent) and allowing them choices before\n data is used in any manner inconsistent with terms they were initially\n provided; and not make material changes to other policies or practices\n governing the use of Student PII that are inconsistent with\n contractual requirements.\n \n \n \n \n \n We will not knowingly retain Student PII beyond the time period\n required to support the authorized educational/school purposes, or as\n authorized by the parent/student.\n \n \n \n \n \n We will collect, use, share, and retain Student PII only for purposes\n for which we were authorized by the educational institution/agency,\n teacher or the parent/student.\n \n \n \n \n \n We will disclose clearly in contracts or privacy policies, including\n in a manner easy for institutions and parents to find and understand,\n what types of Student PII we collect, if any, and the purposes for\n which the information we maintain is used or shared with third\n parties.\n \n \n \n \n \n We will support access to and correction of Student PII by the student\n or their authorized parent, either by assisting the educational\n institution in meeting its requirements or directly when the\n information is collected directly from the student with student/parent\n consent.\n \n \n \n \n \n We will maintain a comprehensive security program that is reasonably\n designed to protect the security, confidentiality, and integrity of\n Student PII against risks – such as unauthorized access or use, or\n unintended or inappropriate disclosure – through the use of\n administrative, technological, and physical safeguards appropriate to\n the sensitivity of the information.\n \n \n \n \n \n We will provide resources to support educational\n institutions/agencies, teachers, or parents/students to protect the\n security and privacy of Student PII while using the educational\n service.\n \n \n \n \n \n We will require that our vendors with whom Student PII is shared in\n order to deliver the educational service, if any, are obligated to\n follow these same commitments for the given Student PII.\n \n \n \n \n \n We will allow a successor entity to maintain the Student PII, in the\n case of our merger or acquisition by another entity, provided the\n successor entity is subject to these same commitments for the\n previously collected Student PII.\n \n \n \n \n \n We will incorporate privacy and security when developing or improving\n our educational products, tools, and services and comply with\n applicable laws.\n \n \n Notes:\n
    \n
  • \n This pledge is intended to be applicable to new contracts and policies\n going forward and addressed — where inconsistent and as agreed to by\n the educational institution or agency — in existing contracts as\n updated over time.\n
  • \n
  • This Pledge shall be effective as of December 1, 2020.
  • \n
\n Definitions: \n
    \n
  • \n ‘School Service Provider’ refers to any entity that: (1) is providing,\n and is operating in its capacity as a provider of, an online or mobile\n application, online service or website that is marketed for use in\n United States elementary and secondary educational institutions/\n agencies and is used at the direction of their teachers or other\n employees; and (2) collects, maintains or uses Student PII in\n digital/electronic format. The term ‘School Service Provider’ does not\n include an entity that is providing, and that is operating in its\n capacity as a provider of, general audience software, applications,\n services or websites not designed and marketed for schools.{\" \"}\n
  • \n
  • \n ‘Educational/School purposes’ are services or functions that\n customarily take place at the direction of the educational\n institution/agency or their teacher/employee, for which the\n institutions or agency would otherwise use its own employees, and that\n aid in the administration or improvement of educational and school\n activities (e.g., instruction, administration, and development and\n improvement of products/services intended for educational/school use).{\" \"}\n
  • \n
  • \n ‘Signatory’ refers to a School Service Provider that has signed the\n Student Privacy Pledge.{\" \"}\n
  • \n
  • \n ‘Student PII’ is a student’s personally identifiable information. The\n term Student PII has the same definition as “covered information”\n under California’s Student Online Personal Information Protection Act\n (SOPIPA), Cal. Bus. & Prof. Code § 22584(i) (2020). Student PII does\n not include de-identified information.{\" \"}\n
  • \n
  • \n ‘Student’ applies to students of United States elementary and\n secondary schools, and with regard to notice and consent applies only\n to students of appropriate age as authorized under relevant United\n States federal law. See FERPA, 20 U.S.C. § 1232g; 34 CFR Part 99.{\" \"}\n
  • \n
  • \n ‘Consumer privacy policies’ include those privacy policies that are\n posted by the company to be available to all users to the site or\n service.\n
  • \n
  • ‘Parent’ includes a student’s legal guardian.
  • \n
  • \n Controller” means the entity which determines the purposes and means\n of the Processing of Personal Data.\n
  • \n
  • \n “Customer” means the entity (or affiliated group) that has executed an\n Order for the Jasperactive products and who is considered the\n Controller of any Personal Data or other Data stored or maintained\n therein.{\" \"}\n
  • \n
  • \n “Personal Data” means any information relating to (i) an identified or\n identifiable natural person and, (ii) an identified or identifiable\n legal entity (where such information is protected similarly as\n personal data or personally identifiable information under applicable\n Data Protection Laws and Regulations), where for each (i) or (ii),\n such data is Customer Data.{\" \"}\n
  • \n
  • \n “Processing” means any operation or set of operations which is\n performed upon Personal Data, whether or not by automatic means, such\n as collection, recording, organization, structuring, storage,\n adaptation or alteration, retrieval, consultation, use, disclosure by\n transmission, dissemination or otherwise making available, alignment\n or combination, restriction, erasure or destruction.{\" \"}\n
  • \n
  • \n “Processor” means the entity which Processes Personal Data on behalf\n of the Controller, including as applicable any “service provider” as\n that term is defined by the CCPA.{\" \"}\n
  • \n
  • \n “K-12 School Service Providers” means a Processor that supports\n educators and students and their educational needs and schools’\n operations.{\" \"}\n
  • \n
  • \n “Student PI” means Personal Data that is provided by students, their\n parents, and their schools to the Jasperactive application{\" \"}\n
  • \n
\n \n This Pledge is a promise by Jasper & CCI that it will adhere to its\n commitments. The Pledge is neither intended as a comprehensive privacy\n policy nor to be inclusive of all requirements to achieve compliance\n with all applicable federal or state laws. This Pledge is not a\n third-party audit, and it is not officially endorsed by any governmental\n agency that has regulatory or enforcement authority.\n \n
\n );\n};\n\nexport default StudentPrivacyPledge;\n","import React from \"react\";\nimport { Box, Typography } from \"@material-ui/core\";\nimport styles from \"./styles\";\n\nconst EndUserLicenseAgreement = () => {\n const classes = styles();\n\n return (\n \n \n JASPERACTIVE™ END-USER LICENSE AGREEMENT{\" \"}\n \n \n YOU ARE REQUIRED TO ACKNOWLEDGE THAT YOU HAVE READ AND ACCEPTED THE\n TERMS AND CONDITIONS OF THIS END-USER LICENSE AGREEMENT (“EULA”) BEFORE\n YOU MAY CONTINUE INSTALLING JASPERACTIVE™ ON YOUR SYSTEM OR NETWORK.{\" \"}\n \n
    \n
  1. \n Scope of this Agreement. This EULA constitutes a binding legal\n agreement between you and Jasper Learning Inc., developer and owner of\n the Jasperactive™ learning software product (“Jasperactive”), in\n respect of your use of Jasperactive. By accepting this EULA where\n indicated below and installing Jasperactive™ on your system or\n systems, you agree to be bound by the terms of this EULA which\n represents the entire agreement between us in respect of your license\n of Jasperactive and supersedes any prior agreement, representation or\n understanding between yourself and Jasper Learning Inc. or any of its\n distributors, agents or vendors. If you do not agree to the terms of\n this EULA you may not install or use Jasperactive.{\" \"}\n
  2. \n
  3. \n Grant of License. If accepted by you, this EULA represents the grant\n by Jasper Learning Inc. of a license for you or the organization you\n represent to use Jasperactive solely for purposes of training and\n private study. It does not in any way constitute a transfer of\n ownership of or copyright in Jasperactive or any part thereof to you\n or to any other person or organization.\n
  4. \n
  5. \n Ownership and Copyright. You hereby acknowledge that Jasperactive is\n exclusively owned by Jasper Learning Inc. and that all of the displays\n and content it contains are owned and copyrighted either by Jasper\n Learning Inc. or other copyright holders acknowledged within\n Jasperactive. You will not make any claim to or representation of\n ownership of Jasperactive or any part thereof. You further acknowledge\n that Jasperactive is protected pursuant to copyright laws and\n international copyright treaties and other intellectual property laws\n and treaties.\n
  6. \n
  7. \n Jasperactive Installations. If you are an organization that has\n purchased a multi-user site license for Jasperactive, you may install\n it on any number of computers including students’ personal home\n computers and devices. If you have purchased an individual license for\n Jasperactive you may install it on your own computer. Each licensee\n and licensee organization is responsible to ensure its registration\n information within the Jasperactive system is correct. All computers\n on which Jasperactive is installed must be equipped with validly\n purchased copies of the operating software compatible with the version\n of Jasperactive that has been installed. In an effort to constantly\n improve, the Jasperactive software is updated periodically.\n
  8. \n
  9. \n Prohibitions on Use. You may not copy, modify or create a derivative\n or collective work or compilation of Jasperactive or any part thereof\n or remove, delete, or reverse engineer, decompile or otherwise attempt\n to extract the code within Jasperactive, and you are prohibited from\n attempting to use or gain unauthorized access to Jasper Learning Inc.\n or any third party networks or equipment or attempt to probe, scan or\n test the vulnerability of Jasperactive or any system used for its\n operation.\n
  10. \n
  11. \n Suspension of Services. Jasper Learning Inc. may suspend, terminate,\n withdraw or discontinue all or any part of the Jasperactive services\n to you or one or more of your student users on receipt of a subpoena\n or legally enforceable request from a legitimate government or law\n enforcement agency or if Jasper Learning Inc. believes acting\n reasonably and in its sole discretion that you or your users have\n breached any term of this agreement or are involved in any fraudulent,\n misleading of illegal activity.\n
  12. \n
  13. \n Term. The license granted under the terms of this EULA will commence\n on the date you or the organization you represent first purchases this\n license, and will terminate automatically one year from this date of\n commencement, or at such earlier time as may be determined by Jasper\n Learning Inc. in the event of any breach of the terms of this EULA by\n the licensee.\n
  14. \n
  15. \n NO WARRANTIES. YOU HEREBY ACKNOWLEDGE AND AGREE THAT (A) JASPER\n LEARNING INC. MAKES NO WARRANTY CONCERNING JASPERACTIVE AND HEREBY\n DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED WITH RESPECT\n THERETO, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES IN\n RESPECT OF MERCHANTABILITY, ERRORS OR OMISSIONS, FITNESS FOR A\n PARTICULAR PURPOSE, OR INFRINGEMENTS OF RIGHTS OF PUBLICITY OR\n PRIVACY, TRADEMARK RIGHTS, DEFAMATION, BUSINESS INTERRUPTION, PERSONAL\n INJURY OR THE DISCLOSURE OF CONFIDENTIAL INFORMATION INDIRECT, OR ANY\n HIDDEN OR LATENT DEFECT, DISABLING CODE, ROUTINE OR VIRUS ; (B) THE\n OPERATION AND AVAILABILITY OF THE SYSTEMS USED FOR ACCESSING AND\n INTERACTING WITH JASPERACTIVE AND TO TRANSMIT INFORMATION CAN BE\n UNPREDICTABLE AND MAY FROM TIME TO TIME INTERFERE WITH OR PREVENT\n ACCESS TO OR USE OR OPERATION OF JASPERACTIVE.\n
  16. \n
  17. \n Limitation of Liability. JASPER LEARNING INC. SHALL NOT BE LIABLE FOR\n ANY INCIDENTAL OR CONSEQUENTIAL DAMAGES OR DAMAGES ARISING FROM\n FAILURE OF JASPERACTIVE TO FUNCTION IN ANY WAY, LOST OR CORRUPTED\n SYSTEMS OR SOFTWARE, LOSS OF PROFITS OR REVENUES OR BUSINESS\n OPPORTUNITIES OR LOST USE OF JASPERACTIVE, EVEN IF ADVISED OF THE\n POSSIBILITY OF THE SAME. NOTWITHSTANDING ANYTHING TO THE CONTRARY\n CONTAINED HEREIN, ANY LIABILITY OF JASPER LEARNING INC. IS LIMITED TO\n THE TOTAL AMOUNT RECEIVED BY JASPER LEARNING INC. FOR THE LICENSE\n GRANTED UNDER THIS EULA DURING THE TWELVE MONTHS IMMEDIATELY PRECEDING\n THE DATE ON WHICH THE PARTICULAR CLAIM AROSE.\n
  18. \n
  19. \n Equitable Remedies. You agree that money damages may be an inadequate\n remedy for Jasper Learning Inc. in the event of any actual or\n threatened breach by you or the licensee organization you represent of\n the terms of this EULA, and you agree that, in the event of such\n breach or threatened breach, in addition to any other remedies Jasper\n Learning Inc. is entitled to injunctive relief or specific performance\n as appropriate to protect its rights.\n
  20. \n
  21. \n Indemnification. At your own cost, you agree to defend Jasper Learning\n Inc. against any claim, action or proceeding brought against Jasper\n Learning Inc. which arises from or is in any manner connected with\n your unauthorized use of Jasperactive or any breach by you or the\n organization you represent of any term of this EULA.\n
  22. \n
  23. \n No Waiver. No waiver or breach or failure by Jasper Learning Inc. at\n any time or times to exercise any right, privilege or option available\n under this EULA will be construed as a waiver of any subsequent right,\n privilege or option.\n
  24. \n
\n
\n );\n};\n\nexport default EndUserLicenseAgreement;\n","import AuthCallBack from './AuthCallBack';\nexport default AuthCallBack;","import React from \"react\";\nimport { useHistory } from 'react-router-dom'\nimport { useAuthentication } from '../../../providers/AuthenticationProvider';\nimport { Loading } from \"../../ui\";\n\nconst AuthCallback = () => {\n const { authentication, setUser } = useAuthentication();\n const history = useHistory();\n\n React.useEffect(() => {\n const authCallback = async () => {\n try {\n const user = await authentication.userManager.signinRedirectCallback();\n if (user?.profile) {\n setUser(user?.profile);\n }\n } catch (error) {\n console.error(\"AuthCallback \", error);\n } finally {\n history.push(\"/dashboard\");\n }\n };\n\n authCallback();\n }, [authentication.userManager, history, setUser]);\n\n return ;\n};\n\nexport default AuthCallback;\n","import Logout from './Logout';\nexport default Logout;","import React from 'react';\nimport { useHistory } from 'react-router-dom'\nimport { useAuthentication } from '../../../providers/AuthenticationProvider';\nimport { Loading } from \"../../ui\";\n\nconst Logout = () => {\n const { authentication, setUser } = useAuthentication();\n const history = useHistory();\n\n React.useEffect(() => {\n const logout = async () => {\n await authentication.userManager.signoutRedirectCallback();\n await authentication.userManager.clearStaleState();\n localStorage.clear();\n sessionStorage.clear();\n setUser(null);\n history.push(\"/\");\n };\n\n logout();\n }, [authentication.userManager, history, setUser]);\n\n return (\n \n );\n};\n\nexport default Logout;\n","import SilentRenew from './SilentRenew';\nexport default SilentRenew;","import React from \"react\";\nimport { useAuthentication } from '../../../providers/AuthenticationProvider';\nimport { Loading } from \"../../ui\";\n\nconst SilentRenew = () => {\n const { authentication } = useAuthentication();\n React.useEffect(() => {\n const silentRenew = async () => {\n await authentication.userManager.signinSilentCallback();\n };\n\n silentRenew();\n }, [authentication.userManager]);\n\n return ;\n};\n\nexport default SilentRenew;\n","import { makeStyles } from \"@material-ui/core/styles\"\nimport { theme } from '../../theme'\n\nconst styles = makeStyles({\n brandTitle: {\n fontSize: \"62px\",\n fontWeight: \"500\",\n lineHeight: \"72px\",\n marginBottom: theme.spacing(3),\n color: theme.palette.grey[400],\n [theme.breakpoints.down(\"md\")]: {\n fontSize: \"46px\",\n },\n [theme.breakpoints.down('xs')]: {\n fontSize: \"46px\",\n lineHeight: \"40px\"\n }\n },\n brandDesc: {\n ...theme.typography.h3,\n color: theme.palette.grey[500],\n [theme.breakpoints.down(\"md\")]: {\n fontSize: \"18px\"\n },\n [theme.breakpoints.down(\"xs\")]: {\n ...theme.typography.body2,\n marginTop: theme.spacing(4)\n },\n },\n})\n\nexport default styles;","import Download from \"./Download\";\nexport default Download;","import React from 'react';\nimport axios from 'axios';\nimport { Loading } from '../ui';\nimport { Box, Button, Typography } from '@material-ui/core';\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\nimport styles from './styles'\n\nconst Download = ({ match }) => {\n const classes = new styles();\n const [isLoading, setIsLoading] = React.useState(true);\n const [info, setInfo] = React.useState({});\n const [error, setError] = React.useState(null);\n\n React.useEffect(() => {\n const getInfo = async () => {\n try {\n const response = await axios.get(`/Download/GetFileInfo?appName=${match.params.appName}`);\n setIsLoading(false);\n setInfo(response.data);\n } catch (error) {\n setIsLoading(false);\n setError(error);\n };\n }\n\n getInfo();\n }, [match.params.appName]);\n\n const onClick = () => {\n window.open(info.downloadUrl, '_blank').focus();\n };\n\n if (isLoading) {\n return \n }\n\n if (error) {\n return (\n \n \n Something went wrong!\n \n \n {error.message}\n \n \n );\n }\n\n return (\n \n \n {info.title}\n \n \n {info.description}\n \n \n \n Release Date: \n \n \n {info.releaseDate}\n \n \n \n \n Version: \n \n \n {info.version}\n \n \n \n \n Size: \n \n \n {info.size}\n \n \n \n \n );\n};\n\nexport default Download;","import React from \"react\";\n\nconst JDL = () => {\n return (\n
\n \n
\n )\n}\n\nexport default JDL;","import ReactGA from \"react-ga\"\n\nconst TRACKING_ID = \"G-ES692QVEES\"\n\nfunction init() {\n // Enable debug mode on the local development environment\n // const isDev = !process.env.NODE_ENV || process.env.NODE_ENV === \"development\"\n const isDev = false;\n ReactGA.initialize(TRACKING_ID, { debug: isDev })\n}\n\nfunction sendEvent(payload) {\n ReactGA.event(payload)\n}\n\nfunction sendPageview(path) {\n if (!path.startsWith('/silent-renew')) {\n ReactGA.set({ page: path })\n ReactGA.pageview(path)\n }\n}\n\nconst analytics = {\n init,\n sendEvent,\n sendPageview,\n}\n\nexport default analytics;","import React from \"react\";\nimport { Switch, Route, Redirect } from \"react-router-dom\";\nimport Appshell from \"../components/layout/Appshell\";\nimport Header from \"../components/layout/Header\";\nimport Footer from \"../components/layout/Footer\";\nimport Home from \"../components/Home\";\nimport ProductDetail from \"../components/Product\";\nimport Dashboard from \"../components/Dashboard\";\nimport Pricing from \"../components/Pricing\";\nimport PrivateRoutes from \"../components/PrivateRoutes\";\nimport {\n PrivacyPolicy,\n PrivacyNotice,\n TermsOfService,\n DataProcessingAgreement,\n StudentDataPrivacy,\n StatementOfPrivacy,\n StudentPrivacyPledge,\n EndUserLicenseAgreement\n} from \"../components/PrivacyPolicy\";\nimport {\n AuthCallback,\n Logout,\n SilentRenew,\n} from \"../components/authentication\";\nimport Download from \"../components/Download\";\nimport JDL from \"../components/Product/JDL\";\nimport useGoogleAnalytics from \"../analytics/useGoogleAnalytics\";\n\n\nconst Routes = () => {\n useGoogleAnalytics();\n return (\n }\n footer={