{"version":3,"sources":["external-api/account-api/api.ts","utils/constants.ts","components/SideDrawer.tsx","store/user/userSelector.ts","external-api/account-api/base.ts","external-api/account-api/common.ts","external-api/account-api/configuration.ts","services/axiosService.ts","utils/cookieHelper.ts","services/accountService.ts","external-api/license-api/api.ts","external-api/license-api/base.ts","external-api/license-api/common.ts","external-api/license-api/configuration.ts","services/ecomService.ts","services/supportService.ts","utils/errorHandling.ts","services/productService.ts","store/ui/uiSlice.ts","store/user/userSlice.ts","components/HeaderMenu.tsx","components/ErrorButton.tsx","assets/iconAlert.svg","store/group/groupSelectors.ts","store/plan/planSelectors.ts","components/Header.tsx","components/Footer.tsx","layouts/MainLayout.tsx","theme/palette.ts","theme/typography.ts","theme/overrides/index.ts","theme/overrides/MuiCssBaseline.ts","theme/index.ts","domain/group/common/CustomStepper.tsx","domain/participant/useEmailsTemplateURI.ts","domain/participant/useEmailListValidation.ts","domain/participant/useParticipantConfiguration.ts","domain/participant/EmailValidationResultCell.tsx","store/ui/uiSelectors.ts","components/CustomButton.tsx","domain/group/common/GroupNavigation.tsx","services/groupService.ts","services/participantService.ts","store/group/groupSlice.ts","domain/group/common/GroupConfirmation.tsx","components/formComponents/form-input.tsx","domain/group/common/RichTextEditor.tsx","components/CustomCard.tsx","components/CustomDatePicker.tsx","components/formComponents/form-select.tsx","hooks/useValidForm.ts","domain/group/common/groupOverview/useGroupOverviewForm.tsx","domain/group/common/groupOverview/GroupOverview.tsx","hooks/useContentfulQuery.ts","components/contentful-loading.tsx","components/contentful-error.tsx","components/contentful/ContentfulAsset.tsx","components/contentful/ContenfulRichText.tsx","domain/training/components/StyledCheckBox.tsx","domain/training/CourseModulePreview.tsx","domain/training/useCourseModuleData.tsx","domain/training/useCourseModuleStepper.tsx","domain/training/CourseDetails.tsx","domain/training/useCoursePreviewModal.tsx","domain/training/CoursePlans.tsx","domain/training/useCoursePlans.tsx","domain/survey/TestSelection.tsx","domain/survey/useTestSelectionData.tsx","domain/survey/useTestSelection.tsx","domain/survey/TestCategoryDetails.tsx","domain/survey/useTestCategoryDetails.tsx","domain/survey/TestingPlans.tsx","domain/survey/useTestingPlans.tsx","domain/group/common/groupPlanConfiguration/usePlanConfigurationForm.tsx","domain/group/common/groupPlanConfiguration/GroupPlanConfiguration.tsx","domain/group/common/useMaxAvailableSlot.ts","domain/group/addGroup/AddGroupStepper.tsx","domain/group/addGroup/useAddGroupStepper.tsx","domain/group/listGroup/ParticipantProgressGraph.tsx","assets/iconMail.svg","domain/group/listGroup/UnverifiedEmailModal.tsx","domain/group/listGroup/useUnverifiedEmail.ts","domain/group/listGroup/GroupListing.tsx","domain/group/listGroup/useGroupListing.ts","domain/group/listGroup/useUnverifiedEmailModa.ts","assets/iconLicenses.svg","domain/participant/TooManyEmailsModal.tsx","domain/participant/ParticipantConfiguration.tsx","services/planConfigurationService.ts","services/planService.ts","store/plan/planSlice.ts","domain/group/editGroup/EditGroupStepper.tsx","domain/group/editGroup/useEditGroupStepper.tsx","pages/Group.tsx","pages/GroupsDashboard.tsx","components/formComponents/form-number.tsx","domain/support/ContactUsForm.tsx","pages/Support.tsx","pages/Privacy.tsx","pages/About.tsx","domain/account/AccountTabs.tsx","components/formComponents/editable-form-input.tsx","components/StyledModal.tsx","domain/account/edit-account/EditName.tsx","domain/account/edit-account/EditEmail.tsx","domain/account/edit-account/EditCompanyName.tsx","domain/account/edit-account/EditPassword.tsx","domain/account/edit-account/EditPhoneNumber.tsx","domain/account/edit-account/EditJobtitle.tsx","domain/account/AccountInfo.tsx","components/NotificationBadge.tsx","domain/account/SubscriptionInfo.tsx","domain/license/Intro.tsx","domain/account/DeleteAccountModalForm.tsx","domain/license/PlanCard.tsx","pages/Plans.tsx","domain/account/SubscriptionManagement.tsx","pages/MyAccount.tsx","domain/analytic/components/VisCard.tsx","domain/analytic/components/BarChart.tsx","domain/analytic/BarUtils.tsx","domain/analytic/ScoreUtils.tsx","domain/analytic/components/MultiCarousel.tsx","domain/analytic/components/ScoreProgressBar.tsx","domain/analytic/components/DatePagination.tsx","domain/analytic/components/ScoreCircleProgressBar.tsx","domain/analytic/components/ScoreCard.tsx","components/TabPanel.tsx","components/FieldErrorMessage.tsx","domain/group/badge/BadgeCardPreview.tsx","domain/group/badge/useBadgeUploader.tsx","domain/group/badge/BadgeCard.tsx","domain/group/badge/useBadgeModal.tsx","domain/analytic/CourseUtils.tsx","domain/analytic/components/ProgressBar.tsx","domain/analytic/components/CourseCircleProgressBar.tsx","domain/analytic/components/CourseCard.tsx","domain/analytic/DashboardAnalytics.tsx","pages/Home.tsx","domain/account/login.tsx","components/formComponents/form-checkbox.tsx","domain/account/create-account.tsx","pages/Logister.tsx","pages/404.tsx","pages/500.tsx","pages/ForgotPassword.tsx","pages/ResetPassword.tsx","pages/ConfirmEmail.tsx","pages/PaymentSuccess.tsx","pages/PaymentFailure.tsx","components/formComponents/form-editable-input.tsx","domain/license/AddLicensesField.tsx","pages/EditPlan.tsx","hooks/useScrollToTop..ts","App.tsx","store/index.ts","utils/persistence.ts","serviceWorker.ts","apollo-client.ts","components/SnackBarNotifier.tsx","components/Loader.tsx","components/CustomToaster.tsx","index.tsx"],"names":["AccountRole","Paths","CookieNames","EmailTexts","useStyles","makeStyles","theme","createStyles","list","width","linkText","textDecoration","textTransform","color","SideDrawer","navLinks","classes","useState","displayDrawer","setDisplayDrawer","handleDrawer","display","event","type","key","IconButton","edge","aria-label","onClick","Menu","fontSize","style","Drawer","anchor","open","onClose","className","role","onKeyDown","List","component","map","title","path","to","ListItem","button","ListItemText","primary","_getUser","state","user","getUser","createSelector","info","getCountry","country","isAuthenticated","status","isEmailConfirmed","authenticatedEmail","getBadge","badge","BASE_PATH","replace","BaseAPI","configuration","basePath","axios","globalAxios","this","RequiredError","field","msg","name","Error","DUMMY_BASE_URL","assertParamExists","functionName","paramName","paramValue","undefined","setSearchParams","url","searchParams","URLSearchParams","search","objects","object","set","toString","serializeDataIfNeeded","value","requestOptions","nonString","isJsonMime","headers","JSON","stringify","toPathString","pathname","hash","createRequestFunction","axiosArgs","axiosRequestArgs","options","request","AccountApiFp","localVarAxiosParamCreator","accountAddBadge","companyName","websiteUrl","companyLogo","logo","a","localVarUrlObj","URL","baseOptions","localVarRequestOptions","method","localVarHeaderParameter","localVarQueryParameter","localVarFormParams","formDataCtor","FormData","append","query","headersFromBaseOptions","data","accountAddPlan","planId","accountAuthenticate","accountConfirmEmail","token","email","accountCreateHRAdmin","accountForgotPassword","forgotPasswordModel","accountGetLogos","accountGetUserInfo","accountLogin","accountReConfirmEmail","oldEmail","accountRefreshToken","tokenRequest","accountResendConfirmation","accountResetPassword","resetPasswordModel","accountUpdateAccount","accountUpdateEmail","accountUpdatePassword","AccountApiAxiosParamCreator","localVarAxiosArgs","AccountApi","then","Configuration","param","apiKey","username","password","accessToken","mime","jsonMime","RegExp","test","toLowerCase","interceptor","store","interceptors","use","conf","error","Promise","reject","response","next","resolve","dispatch","logout","navigate","getToken","Cookies","get","saveToken","authResult","sameSite","refreshToken","removeToken","remove","getExpirationDate","jwtToken","jwt","parse","atob","split","exp","apiUrl","process","GroupStatus","ImplicitBiasInterpretation","ImplicitBiasInterpretationDirection","AccountService","api","createAccountAsync","userInfoData","trackPromise","resp","loginAsync","forgotPasswordAsync","forgotPasswordData","resetPasswordAsync","resetPasswordData","addBadgeAsync","getLogos","addPlanAsync","confirmEmail","resendConfirmationEmail","getUserInfo","updateUserAsync","updateUser","updateEmailAsync","updateEmail","reConfirmEmailAsync","updatePasswordAsync","updatePassword","configParams","Authorization","http","getApi","GroupApiFp","groupAddGroup","groupDTO","groupDeleteGroup","groupId","groupGetGroup","id","localVarPath","encodeURIComponent","String","groupGetGroups","groupGetGroupsWithResults","groupUpdateGroupOverview","groupOverviewDTO","GroupApiAxiosParamCreator","GroupApi","ParticipantApiFp","participantAddParticipants","participantDTO","participantUpdateParticipants","ParticipantApiAxiosParamCreator","ParticipantApi","PaymentsApiFp","paymentsCheckoutFreeTier","req","paymentsCreateCheckoutSession","paymentsCustomerPortal","paymentsErrorCheckout","sessionId","paymentsErrorUpdateCheckout","paymentsFinalizeCheckout","paymentsFinalizeUpdateCheckout","paymentsSubscriptionDowngradeStart","paymentsUpgradeSubscription","PaymentsApiAxiosParamCreator","PaymentsApi","PlanApiFp","planGetPlan","PlanApiAxiosParamCreator","PlanApi","PlanConfigurationApiFp","planConfigurationAddPlanConfiguration","planConfigurationDTO","planConfigurationGetPlanConfiguration","planConfigurationUpdatePlanConfiguration","planConfigurationId","updatePlanConfigurationDTO","PlanConfigurationApiAxiosParamCreator","PlanConfigurationApi","ProductApiFp","productGetAllPlans","productGetAllPrices","productGetAllProducts","productGetPriceById","productGetProductById","ProductApiAxiosParamCreator","ProductApi","SupportApiFp","supportPost","supportRequest","SupportApiAxiosParamCreator","SupportApi","EcomService","createCheckoutSession","createPortalSession","createFreeTier","downgradeSubscription","upgradeSubscription","SupportService","supportApi","submitSupportTicketAsync","handleAuthErrors","customErrorMessage","enqueueNotification","message","Date","getTime","Math","random","variant","ProductService","getPlans","checkoutAction","createAsyncThunk","thunkAPI","priceId","quantity","rejectWithValue","tryRefreshTokenAction","stripeKey","ecomService","body","stripePromise","loadStripe","stripe","redirectToCheckout","checkoutFreeTierAction","submitSupportTicketAction","supportTicketData","comment","description","phoneNumber","service","supportTicketInfo","setGroupToEdit","getState","group","groupToEdit","groupData","find","x","uiGroup","numberOfSlotsUsed","participants","anonymousUsers","planConfiguration","testConfiguration","categoryId","courseConfiguration","courseModuleIds","moduleId","emailConfiguration","reminderEmailBody","reminderEmailSubject","invitationEmailSubject","invitationEmailBody","numberOfReminders","daysBetweenReminders","invitationDates","invitationalEmailDates","dateTime","initialLoaded","anonymousLinks","testSchedules","schedule","testUrl","editGroup","updateOverviewSectionAsync","overview","updateOverviewSection","updateParticipantsSectionAsync","updateParticipantSection","updatePlanConfigurationSectionAsync","updateConfigurationSection","getAllPlansAction","resData","getAllLogosAction","initialState","currentPlan","change","planUpgradeForMoreEmails","plans","logos","notifications","uiSlice","createSlice","reducers","action","payload","clearGroup","length","planSelectionStarted","planSelectionCompleted","planUpgradeStarted","planUpgradeCompleted","planChangeDiscarded","planUpgradeForMoreEmailsRequested","planUpgradeForMoreEmailsCompleted","planUpgradeForMoreEmailsCanceled","planUpgradeForMoreEmailsNotNeeded","closeNotification","notification","dismissAll","dismissed","removeNotification","filter","extraReducers","builder","addCase","fulfilled","actions","updateUserInfoAction","userInfo","updateAccount","updateEmailAction","updatePasswordAction","reVerifyEmailAction","addBadgeAction","formdata","addBadge","loginAction","userAuthData","accountName","createAccountAction","emailAddress","firstName","lastName","jobTitle","phoneNumberExt","ext","emailOptIn","sendNews","now","accountService","accountId","unique_name","authRequest","updatedToken","success","errors","forgotPasswordAction","requestBody","resetPasswordAction","confirmPassword","passwordConfirmation","confirmEmailAction","getUserInfoAction","createCustomerPortalAction","resendConfirmationAction","userSlice","mockLogin","pending","rejected","headerMenuRoot","borderLeft","marginRight","padding","fontWeight","borderRadius","palette","main","background","icon","stroke","strokeLinejoin","strokeWidth","paper","spacing","HeaderMenu","React","setOpen","anchorRef","useRef","useDispatch","useSelector","handleClose","current","contains","target","handleListKeyDown","preventDefault","prevOpen","useEffect","focus","Button","ref","aria-controls","aria-haspopup","endIcon","Popper","anchorEl","transition","disablePortal","placement","TransitionProps","Grow","transformOrigin","Paper","ClickAwayListener","onClickAway","MenuList","autoFocusItem","MenuItem","e","borderWidth","backgroundColor","red","borderColor","secondaryButton","ErrorButton","label","disabled","secondary","size","_extends","Object","assign","i","arguments","source","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","fill","d","y2","transform","strokeLinecap","cx","cy","r","SvgIconAlert","_ref","svgRef","titleId","props","xmlns","height","viewBox","ForwardRef","_getGroupList","groupList","getGroupList","groups","hasGroup","getTotalUsedSlots","reduce","b","_getPlan","plan","hasPlan","getPlan","hasStripe","appbar","toolbar","justifyContent","navList","tabsHeaderMenu","tabs","tabIndicator","tab","paddingTop","opacity","orange","highlight","tabSelected","headerMenu","paddingLeft","banner","alignItems","flexWrap","bannerContent","verticalAlign","bannerIcon","bannerButton","marginLeft","Header","location","useLocation","hasAPlan","hasAGroup","isAuth","isVerified","navTabCurrentIndex","findIndex","link","navTabIndex","setNavTabIndex","AppBar","position","Link","src","alt","Hidden","smDown","Tabs","onChange","root","flexContainer","indicator","centered","index","Tab","selected","mdUp","SvgIcon","Typography","footer","marginTop","boxSizing","links","lineHeight","pipe","margin","copyright","shades","grey","socialmedia","socialmediaButton","socialmediaIcon","socialmediaIconTwitter","Footer","window","mainLayoutRoot","flexDirection","minHeight","content","flexGrow","overflow","maxWidth","MainLayout","children","nofooter","blackGrey","orangeDark","orangeDarker","orangeMain","white","black","orangeLight","whiteOff","light","dark","contrastText","colors","green","blue","warning","text","header","divider","dark1","dark2","dark3","dark4","yellow","lightgrey","greyMiddle","grey2","system","checkboxGreen","modalGradientTop","modalGradientBottom","fontFamily","join","h1","marginBottom","h2","MuiCssBaseline","createMuiTheme","typography","overrides","breakpoints","values","xs","sm","md","lg","xl","MuiButton","contained","border","containedSizeLarge","sidePanel","borderLeftWidth","stepButton","textAlign","CustomStepper","activeStep","steps","setActiveStep","enableNavigation","breakpoint1","useMediaQuery","up","breakpoint2","orientationValue","completed","Stepper","nonLinear","orientation","Step","StepButton","step","EMAILS_TEMPLATE_URI","encodeURI","useEmailsTemplateURI","dataURL","useEmailListValidation","result","valid","EMAIL_VALIDATION_REGEX","Array","isArray","every","row","emails","trim","isValidEmail","s","isUnique","lastIndexOf","validation","Boolean","isValid","useParticipantConfiguration","maxNumOfParticipants","initData","uploadedFile","setUploadedFile","setData","dataValidationResult","Papa","skipEmptyLines","complete","results","handleInput","files","currentTarget","file","isUploaded","isTooManyEmails","duplicate","invalid","EmailValidationResultCell","_getCurrentGroup","ui","_getCurrentPlan","getNotifications","getAllPlans","getCurrentGroupIsAnonymous","getCurrentGroupParticipants","getCurrentGroupAnonLinks","getCurrentGroupSlotsUsed","getCurrentGroupPlanConfiguration","getCurrentGroupOverview","invitationBlocksFromHtml","htmlToDraft","invitationBlocks","contentBlocks","invitationEntity","entityMap","invitationContentState","ContentState","createFromBlockArray","invitationEditorState","convertToRaw","reminderBlocksFromHtml","contentState","reminderEditorState","localDates","moment","utc","local","toDate","getIsPlanSelectionStarted","getIsPlanUpgradeStarted","getIsPlanUpgradeCompleted","getIsPlanUpgradeForMoreEmailsRequested","getIsPlanUpgradeForMoreEmailsNotNeeded","CustomButton","buttonContainer","GroupNavigation","nextStep","prevStep","isNextDisabled","isFirstStep","isLastStep","hasForm","isEdit","Grid","container","item","memo","GroupService","groupApi","addGroup","getGroups","getGroupsResults","getGroup","updateGroupOverview","deleteGroup","ParticipantService","participantApi","updateGroupParticipants","utcDates","participantsDTO","NUMBER_0","metaData","appendGroupMeta","currentGroup","returnData","toISOString","getAllGroups","includeResults","groupSlice","updateGroupMeta","push","titleUnderlined","borderBottom","box","table","theadhead","paddingBottom","tcell","buttonDiscard","buttonCustom","buttonBack","buttonBackIcon","flex","GroupOverview","Box","TableContainer","Table","TableHead","TableRow","TableCell","align","TableBody","associatedCourse","y","scope","testName","format","data-name","points","rootInput","input","fontStyle","inputMultiline","editIcon","cursor","FormInput","inputRef","placeholder","helperText","rows","onEdit","fullWidth","multiline","readonly","TextField","InputLabelProps","shrink","InputProps","richTextWrapper","minheight","richTextArea","richTextToolBar","richTextEditor","RichTextEditor","control","editor","render","defaultContentState","onEditorStateChange","editorState","getCurrentContent","wrapperClassName","toolbarClassName","editorClassName","Card","withStyles","boxShadow","MuiCard","CustomCard","customButton","focusedDate","dateTimeContainer","dateTimeButtonContainer","dateRemoveIcon","top","datePickerInput","CustomDatePicker","deleteDate","inline","isPastNow","isSameOrBefore","disablePast","minDateTime","onOpen","minutesStep","onAccept","addedDate","showToolbar","renderInput","inputFormat","sel_container","sel_container_m","select","FormSelect","defaultValue","withoutMargin","FormControl","InputLabel","Select","option","FormHelperText","useValidForm","onSubmitFunc","validationSchema","defaultValues","shouldUnregister","useForm","resolver","yupResolver","mode","reValidateMode","handleSubmit","methods","onSubmit","yup","shape","required","groupOverviewRoot","form","reset","useGroupOverviewForm","formValues","finalValues","register","formState","savedDates","setInvitationDates","editDate","date","newDates","sortedDates","sort","dates","splice","reminderOptions","renderReminderDelays","useContentfulQuery","variables","preview","useQuery","ContentfulLoading","ContentfulError","ContentfulAsset","contentType","controls","x1","y1","x2","renderAssetType","ContentfulRichText","assetBlockMap","Map","assets","block","asset","sys","entries","entry","renderMark","renderNode","BLOCKS","PARAGRAPH","node","paragraph","HEADING_1","HEADING_2","HEADING_3","HEADING_4","HEADING_5","HEADING_6","EMBEDDED_ASSET","EMBEDDED_ENTRY","__typename","json","documentToReactComponents","minWidth","outline","outlineOffset","checkedIcon","StyledCheckBox","checked","others","Checkbox","disableRipple","clsx","inputProps","coursePreviewModal","grid","gridTemplateAreas","left","maxHeight","heading","gridArea","close","right","paddingRight","listText","richTextPreview","done","listContainer","customCard","StyledMenuItem","CourseModulePreview","forwardRef","onChildClick","courseData","courseCollection","items","courseModules","courseModulesCollection","activeModuleIndex","setActiveModule","activeModuleContent","activeModuleId","selectModule","useCourseModuleData","courseId","useFormContext","getValues","setIndex","courseIndex","selectedCourseModules","useWatch","fieldArrayProps","useFieldArray","keyName","removeModule","moduleIndex","isSelected","some","useCourseModuleStepper","courseTitle","float","module","whiteSpace","hrAdminPreviewContent","forEach","mod","GET_COURSE_DETAILS","gql","CourseDetails","addCourse","removeCourse","courseLimit","courseModuleLimit","courseIds","loading","handleOpen","useCoursePreviewModal","onModalClose","CardActionArea","CardContent","Modal","aria-labelledby","aria-describedby","trainingPlanRoot","GET_ALL_COURSES_LIST","CoursePlans","selectedTests","categoryIds","selectedCourses","categories","includes","category","useCoursePlans","fields","common","TestSelection","activeTestIndex","setActiveTest","tests","surveyCollection","activeTestContent","activeTestId","useTestSelectionData","testId","useTestSelection","currentSelectedTest","selectedTestIndex","setValue","toggleTests","GET_TEST_DETAILS","TestCategoryDetails","testIds","testLimit","useTestCategoryDetails","GET_ALL_SURVEY_LIST","TestingPlans","allCategories","survey","categoryLabel","v","useTestingPlans","groupRoot","GroupPlanConfiguration","usePlanConfigurationForm","useMaxAvailableSlot","totalUsedSlots","currentUsedSlots","availableSlots","features","maxNumEmailUsers","bottom","borderTop","zIndex","AddGroupStepper","groupOverviewValues","participantsValues","anonLinksValues","planConfigurationValues","planValues","isPlanUpgradeForMoreEmailsNotNeeded","maxAvailableSlot","stepperData","allowAnonymousUsers","allowEmailUsers","maxNumAnonymousUsers","numAvailAnonymousUsers","numAvailEmailUsers","GroupConfirmation","prevActiveStep","invitationBodyMarkup","draftToHtml","reminderBodymarkup","invitationDate","dataSubmission","currentComponent","labels","setStep","useAddGroupStepper","progressIndicator","progressLabel","CircularProgress","MuiCircularProgress","ParticipantProgressGraph","graphLabel","thickness","rx","SvgIconMail","modalHeading","headerTitle","headerSubtitle","contentTitle","contentBody","contentEmail","modalImage","modalButton","modalCloseButton","closeButton","resendButton","cancelButton","UnverifiedEmailModal","handleModalClose","isOpen","resendVerificationEmail","useUnverifiedEmail","Dialog","MuiDialog","DialogTitle","disableTypography","DialogContent","cardActionArea","cardHeader","dateTimeIndicator","addGroupWrapper","addFirstGroupButton","textShadow","AddCard","CardActions","MuiCardActions","GroupListing","_groups","_plan","_getAllGroups","useGroupListing","openUnverifiedEmailModal","closeUnverifiedEmailModal","useUnverifiedEmailModal","gutterBottom","round","nextDate","toLocaleDateString","disableSpacing","startIcon","Icon","SvgIconLicenses","TooManyEmailsModal","maxNumLicenses","handleUpgrade","ParticipantConfigurationRoot","emailUploadInstruction","uploadButton","emailLicenseUsageText","emailLicenseUsage","errorBar","StyledAccordion","Accordion","StyledAccordionSummary","AccordionSummary","AccordionSwitch","switchBase","track","Switch","ParticipantConfiguration","anonUsersSelected","setAnonUsersSelected","displayTooManyEmailsModal","setDisplayTooManyEmailsModal","emailsTemplateURI","participant","InviteByLink","href","InviteByEmail","download","accept","onInput","htmlFor","columns","rowData","headerStyle","components","Toolbar","borderTopRightRadius","borderTopLeftRadius","InviteByBoth","expanded","expandIcon","FormControlLabel","stopPropagation","onFocus","AccordionDetails","PlanConfigurationService","planConfigurationApi","updatePlanConfiguration","PlanService","planApi","getMyPlan","field_errors","downgradePlanAction","upgradePlanAction","currentPlanConfiguration","planSlice","price","pendingPayment","stripeCustomerID","stripeSubscriptionID","stripeProductID","EditGroupStepper","ready","setReady","isAnonymous","getGroupData","useEditGroupStepper","Group","alignContent","backgroundSize","GroupDashboard","hasPlanSelector","navigateToPlan","GroupNoPlan","Container","FormNumber","contactUsFormRoot","cardContent","submitButton","matches","ContactUsForm","resultAction","match","Support","subheading","heading2","Privacy","justify","About","accountTabsRoot","accountTabsItem","AccountTabs","accountTabsList","onTabChange","newValue","EditableFormInput","endAdornment","InputAdornment","StyledModal","pretitle","modalHeader","modalFooter","saveButton","ModalContents","Divider","EditName","showModal","setShowModal","oneOf","EditEmail","oldPassword","min","currentPassword","newPassword","EditPassword","typeError","extension","EditPhoneNumber","EditCompanyName","accountInfoRoot","ListOfCountries","countries","countryCode","AccountInfo","notificationBadgeRoot","dot","arrow","tooltip","NotificationBadge","Tooltip","subscriptionInfoRoot","fieldLabel","fieldValue","SubscriptionInfo","planUpgraded","totalNumberOfSlotsUsed","currentSubscription","labelTitle","wrapper","subheading2","image","listStyle","listItem","listItemImageWrapper","listItemImage","listItemText","buttons","Intro","planCard","per","planButton","subButton","numLicensesCollapse","numLicensesContainer","numLicensesText","numLicensesInput","PlanTextField","CardHeader","MuiCardHeader","MuiCardContent","CurrencySymbol","currency","PlanCard","minNumLicenses","onSelectPlan","showNumLicenses","setShowNumLicenses","Number","NaN","numLicenses","setNumLicenses","Collapse","in","parseInt","max","msgHeading","msgBody","plansContainer","planContainer","planImage","planInfoContainer","planInfoRow","modalContentTitle","modalContentBody","modalContentNumLicenses","modalFieldLabel","modalFieldValue","modalActionButtonContainer","modalCancelButtonContainer","modalActionButton","modalCancelButton","modalDivider","getCurrencyForCountry","countryCodeData","Plans","selectedPlan","setSelectedPlan","selectedNumLicenses","setSelectedNumLicenses","showConfirmSubscriptionModal","setShowConfirmSubscriptionModal","getNumber","str","num","isNaN","recurringPrices","unit_amount","product","handleConfirmSubscription","ConfirmSubscriptionModal","slice","metadata","Order","ImageURL","handleSelectPlan","toLocaleLowerCase","MinQuantity","MaxQuantity","POSITIVE_INFINITY","subscriptionManagementRoot","sectionTitle","redButton","useFreePlanDetails","freePlan","planInfo","freePlanPriceId","freePlanMaxQuantity","SubscriptionManagement","portalLink","setPortalLink","showCancelPlanModal","setShowCancelPlanModal","hasStripeSelector","allRecurringPrices","flat","isCurrentPlanFree","priceID","isNextPlanFree","nextSubscription","useIsFreePlan","handleEditPlan","handleCancelPlan","onCancelPlan","subscriptionID","quantityRemoved","SubscriptionDetails","SubscriptionSettings","startDate","year","month","day","CancelSubscription","createCustomerPortalLink","myAccountRoot","subInfo","TabPanel","other","hidden","p","MyAccount","AccountTabsList","visCardRoot","visCardRootHalf","visCardRootDouble","barChartRoot","barChartRootHalf","VisCard","double","half","nivoTheme","nivoBarCommonProps","groupMode","layout","reverse","minValue","maxValue","valueScale","indexScale","innerPadding","axisBottom","axisLeft","enableGridX","enableGridY","enableLabel","labelSkipWidth","labelSkipHeight","labelLinkColor","labelTextColor","scheme","defs","from","isInteractive","legends","BarChart","nivoBarProps","toolTip","borderStyle","CustomTooltip","CustomVerticalBarComponent","onMouseMove","showTooltip","onMouseLeave","hideTooltip","ry","stroke-width","text-anchor","dominant-baseline","labelColor","CustomTickV","tick","themeX","useTheme","textAnchor","dominantBaseline","axis","ticks","dangerouslySetInnerHTML","__html","CustomTickHSmaller","line","convertIATHistoricalDataToBarChartData","iatHistoricalData","strongNegative","moderateNegative","slightNegative","littleOrNo","slightPositive","moderatePositive","strongPositive","iteration","iterationData","iterationLabel","indexBy","legend","legendPosition","legendOffset","renderTick","barComponent","getIATCategories","scores","iatType","primaryCategory","score","NEGATIVE_INFINITY","convertGroupDataToScores","surveyTitles","includeScoreBreakdown","testScores","numberOfParticipants","numberOfCompleted","testConfig","_","testScore","output","groupBy","iterations","subheader","iatCategories","iatLabels","scoreData","convertGroupDataToScoreCardsData","tracker","buttonGroup","buttonDisabled","customButtonLabel","customButtonLeft","customButtonRight","sliderInput","appearance","responsive","desktop","breakpoint","slidesToSlide","tablet","mobile","MultiCarousel","slider","carouselRef","Slider","carouselState","previous","carouselItemWidth","currentSlide","totalItems","slidesToShow","itemWidth","maxTranslateX","abs","nextTransform","nextSlide","setState","customButtonGroup","arrows","additionalTransfrom","renderButtonGroupOutside","swipeable","draggable","autoPlay","autoPlaySpeed","keyBoardControl","containerClass","removeArrowOnDeviceType","dotListClass","sliderClass","itemClass","LinearProgressBar","colorPrimary","bar","LinearProgress","meter","textPercent","textPercentDark","ScoreProgressBar","total","percentage","floor","currentWrapper","textCurrent","textCurrentDate","nav","div","ul","textPrevious","textDate","DatePagination","onNextFunc","onPrevFunc","dateString","lighterColor","textContext","textPosDifference","textNegDifference","darkerColor","ScoreCircleProgressBar","currentScore","prevScore","currentScoreValue","prevScoreValue","styles","trail","textNoResults","textNoResultsInfo","circleProgress","ScoreCard","sortedScores","prevScores","usePrevCurrentScores","prevScoreIndex","setPrevScoreIndex","FieldErrorMessage","previewContent","overflowY","logobox","logoboxSpan","logoboxImg","BadgeCardPreview","previewImage","setPreviewImage","handleUpload","useDropzone","noClick","noKeyboard","maxFiles","multiple","getInputProps","acceptedFiles","fileReader","FileReader","onload","readAsDataURL","useBadgeUploader","FileSaver","saveAs","direction","objectFit","downloadButton","BadgeCard","useBadgeModal","convertGroupDataToCourseCardsData","courseTitles","courses","course","numberOfPassed","courseConfig","convertGroupDataToCourseData","ProgressBar","CourseCircleProgressBar","progressBars","progressBarLabel","CourseCard","currentCourse","sortedCourses","prevCourse","usePrevCurrentCourses","passed","section","addGroupButton","groupSection","addTestButton","verticalCenter","GET_ALL_COURSE_LABELS","GET_ALL_SURVEY_LABELS","DashboardAnalytics","courseLabels","useCourseLabels","surveyLabels","surveyModulesCollection","contentCollection","firstAssociationPairCollection","element","secondAssociationPairCollection","useSurveyLabels","groupsResults","scoreCardData","courseCardData","scrollButtons","scoreBreakdown","Home","hasGroupSelector","forgotPasswordMessage","signWithLabel","facebookButton","permissionLabel","Login","checkboxContainer","checkboxSpace","flexBasis","checkboxError","FormCheckbox","errorMessage","privacyMessage","checkboxLabel","confirmPrivacyPolicy","CreateAccount","headerWrapper","contentMain","objectPosition","contentForm","Logister","indicatorColor","textColor","Page404","Page500","ForgotPassword","backgroundLeft","backgroundRight","confirmation","ResetPassword","resetData","setResetData","requestData","ConfirmEmail","setSuccess","PaymentSuccess","isPlanSelectionStarted","isPlanUpgradeStarted","PaymentFailure","inputUnderline","borderBottomColor","FormEditableInput","onClickEdit","onClickCancel","onClickSave","Input","readOnly","Edit","Done","Clear","AddLicensesField","currentNumLicenses","newNumLicenses","setNewNumLicenses","setReadonly","validationError","setValidationError","showAddLicenseModal","setShowAddLicenseModal","planUpdateDetails","totalLicensesAfterUpdate","planAfterUpdate","customerId","subscriptionId","oneTimePriceId","oneTimePrices","recurringPriceId","quantityAdded","useUpdateDetails","AddLicenseModal","originalValue","validateSync","validateNumLicenses","formContainer","formRow","fieldLabelContainer","fieldValueContainer","backButtonContainer","backButton","EditPlan","ScrollToTop","useLayoutEffect","scrollTo","Route","Component","rest","noThrow","App","GroupsDashboard","default","persistedState","serializedState","sessionStorage","getItem","err","loadState","combinedReducer","combineReducers","groupReducer","planReducer","uiReducer","userReducer","configureStore","reducer","preloadedState","devTools","subscribe","setItem","saveState","hostname","SPACE_ID","REACT_APP_CONTENTFUL_SPACE_ID","CDN_ACCESS_TOKEN","REACT_APP_CONTENTFUL_CDN_ACCESS_TOKEN","client","REACT_APP_CONTENTFUL_PREVIEW_ACCESS_TOKEN","ApolloClient","uri","credentials","cache","InMemoryCache","displayed","SnackBarNotifier","useSnackbar","enqueueSnackbar","closeSnackbar","reason","myKey","onExited","spinner","backdrop","GlobalLoader","promiseInProgress","usePromiseTracker","Backdrop","toaster","CustomToaster","getClassVariant","ReactDOM","StrictMode","LocalizationProvider","dateAdapter","MomentAdapter","ThemeProvider","maxSnack","autoHideDuration","CssBaseline","document","getElementById","navigator","serviceWorker","registration","unregister","catch","console"],"mappings":"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","file":"static/js/main.d88d87e4.chunk.js","sourcesContent":["/* tslint:disable */\r\n/* eslint-disable */\r\n/**\r\n * Bias Proof Account API\r\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * \r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nimport { Configuration } from './configuration';\r\nimport globalAxios, { AxiosPromise, AxiosInstance } from 'axios';\r\n// Some imports not used depending on template conditions\r\n// @ts-ignore\r\nimport { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common';\r\n// @ts-ignore\r\nimport { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base';\r\n\r\n/**\r\n * \r\n * @export\r\n * @interface Account\r\n */\r\nexport interface Account {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof Account\r\n */\r\n id: number;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n userName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n normalizedUserName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n email?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n normalizedEmail?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof Account\r\n */\r\n emailConfirmed: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n passwordHash?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n securityStamp?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n concurrencyStamp?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n phoneNumber?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof Account\r\n */\r\n phoneNumberConfirmed: boolean;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof Account\r\n */\r\n twoFactorEnabled: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n lockoutEnd?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof Account\r\n */\r\n lockoutEnabled: boolean;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof Account\r\n */\r\n accessFailedCount: number;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n publicID?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n firstName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n lastName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n emailAddress?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n companyName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n jobTitle?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n country?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n phoneNumberExt?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof Account\r\n */\r\n emailOptIn: boolean;\r\n /**\r\n * \r\n * @type {AccountRole}\r\n * @memberof Account\r\n */\r\n role: AccountRole;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Account\r\n */\r\n planId?: string;\r\n /**\r\n * \r\n * @type {Badge}\r\n * @memberof Account\r\n */\r\n badge?: Badge;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof Account\r\n */\r\n refreshTokens?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface AccountAllOf\r\n */\r\nexport interface AccountAllOf {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountAllOf\r\n */\r\n publicID?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountAllOf\r\n */\r\n firstName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountAllOf\r\n */\r\n lastName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountAllOf\r\n */\r\n emailAddress?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountAllOf\r\n */\r\n companyName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountAllOf\r\n */\r\n jobTitle?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountAllOf\r\n */\r\n country?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountAllOf\r\n */\r\n phoneNumberExt?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof AccountAllOf\r\n */\r\n emailOptIn: boolean;\r\n /**\r\n * \r\n * @type {AccountRole}\r\n * @memberof AccountAllOf\r\n */\r\n role: AccountRole;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountAllOf\r\n */\r\n planId?: string;\r\n /**\r\n * \r\n * @type {Badge}\r\n * @memberof AccountAllOf\r\n */\r\n badge?: Badge;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof AccountAllOf\r\n */\r\n refreshTokens?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface AccountInfo\r\n */\r\nexport interface AccountInfo {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountInfo\r\n */\r\n firstName: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountInfo\r\n */\r\n lastName: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountInfo\r\n */\r\n emailAddress: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountInfo\r\n */\r\n password: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountInfo\r\n */\r\n publicID?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountInfo\r\n */\r\n companyName: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountInfo\r\n */\r\n jobTitle?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountInfo\r\n */\r\n country: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountInfo\r\n */\r\n phoneNumber: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountInfo\r\n */\r\n phoneNumberExt?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof AccountInfo\r\n */\r\n emailOptIn: boolean;\r\n /**\r\n * \r\n * @type {BadgeResponseDTO}\r\n * @memberof AccountInfo\r\n */\r\n badge?: BadgeResponseDTO;\r\n /**\r\n * \r\n * @type {AuthResult}\r\n * @memberof AccountInfo\r\n */\r\n authResult?: AuthResult;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AccountInfo\r\n */\r\n planId?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof AccountInfo\r\n */\r\n authenticatedEmail: boolean;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @enum {string}\r\n */\r\nexport enum AccountRole {\r\n NUMBER_0 = 0,\r\n NUMBER_1 = 1,\r\n NUMBER_2 = 2\r\n}\r\n\r\n/**\r\n * \r\n * @export\r\n * @interface AuthResult\r\n */\r\nexport interface AuthResult {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AuthResult\r\n */\r\n token?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AuthResult\r\n */\r\n refreshToken?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof AuthResult\r\n */\r\n success: boolean;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof AuthResult\r\n */\r\n errors?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface AuthenticatedModel\r\n */\r\nexport interface AuthenticatedModel {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AuthenticatedModel\r\n */\r\n accountName: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AuthenticatedModel\r\n */\r\n password: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface Badge\r\n */\r\nexport interface Badge {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof Badge\r\n */\r\n id: number;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Badge\r\n */\r\n dateCreated: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Badge\r\n */\r\n dateModified: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Badge\r\n */\r\n publicID: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Badge\r\n */\r\n companyName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Badge\r\n */\r\n websiteUrl?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Badge\r\n */\r\n companyLogo?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Badge\r\n */\r\n blobId?: string;\r\n /**\r\n * \r\n * @type {Account}\r\n * @memberof Badge\r\n */\r\n account?: Account;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Badge\r\n */\r\n accountId?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface BadgeAllOf\r\n */\r\nexport interface BadgeAllOf {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof BadgeAllOf\r\n */\r\n companyName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof BadgeAllOf\r\n */\r\n websiteUrl?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof BadgeAllOf\r\n */\r\n companyLogo?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof BadgeAllOf\r\n */\r\n blobId?: string;\r\n /**\r\n * \r\n * @type {Account}\r\n * @memberof BadgeAllOf\r\n */\r\n account?: Account;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof BadgeAllOf\r\n */\r\n accountId?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface BadgeDTO\r\n */\r\nexport interface BadgeDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof BadgeDTO\r\n */\r\n companyName: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof BadgeDTO\r\n */\r\n websiteUrl: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof BadgeDTO\r\n */\r\n companyLogo?: string;\r\n /**\r\n * \r\n * @type {any}\r\n * @memberof BadgeDTO\r\n */\r\n logo?: any;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface BadgeResponseDTO\r\n */\r\nexport interface BadgeResponseDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof BadgeResponseDTO\r\n */\r\n companyName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof BadgeResponseDTO\r\n */\r\n websiteUrl?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof BadgeResponseDTO\r\n */\r\n companyLogo?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface ForgotPasswordModel\r\n */\r\nexport interface ForgotPasswordModel {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ForgotPasswordModel\r\n */\r\n email: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface IdentityOfIntegerAndString\r\n */\r\nexport interface IdentityOfIntegerAndString {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof IdentityOfIntegerAndString\r\n */\r\n id: number;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof IdentityOfIntegerAndString\r\n */\r\n dateCreated: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof IdentityOfIntegerAndString\r\n */\r\n dateModified: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface IdentityUserOfInteger\r\n */\r\nexport interface IdentityUserOfInteger {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n id: number;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n userName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n normalizedUserName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n email?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n normalizedEmail?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n emailConfirmed: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n passwordHash?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n securityStamp?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n concurrencyStamp?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n phoneNumber?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n phoneNumberConfirmed: boolean;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n twoFactorEnabled: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n lockoutEnd?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n lockoutEnabled: boolean;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof IdentityUserOfInteger\r\n */\r\n accessFailedCount: number;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface PublicIdentityOfIntegerAndString\r\n */\r\nexport interface PublicIdentityOfIntegerAndString {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PublicIdentityOfIntegerAndString\r\n */\r\n id: number;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PublicIdentityOfIntegerAndString\r\n */\r\n dateCreated: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PublicIdentityOfIntegerAndString\r\n */\r\n dateModified: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PublicIdentityOfIntegerAndString\r\n */\r\n publicID: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface PublicIdentityOfIntegerAndStringAllOf\r\n */\r\nexport interface PublicIdentityOfIntegerAndStringAllOf {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PublicIdentityOfIntegerAndStringAllOf\r\n */\r\n publicID: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface RefreshToken\r\n */\r\nexport interface RefreshToken {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof RefreshToken\r\n */\r\n id: number;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof RefreshToken\r\n */\r\n dateCreated: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof RefreshToken\r\n */\r\n dateModified: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof RefreshToken\r\n */\r\n publicID: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof RefreshToken\r\n */\r\n token?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof RefreshToken\r\n */\r\n jwtId?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof RefreshToken\r\n */\r\n isUsed: boolean;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof RefreshToken\r\n */\r\n isRevoked: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof RefreshToken\r\n */\r\n addedDate: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof RefreshToken\r\n */\r\n expiryDate: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof RefreshToken\r\n */\r\n accountId?: string;\r\n /**\r\n * \r\n * @type {Account}\r\n * @memberof RefreshToken\r\n */\r\n account?: Account;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface RefreshTokenAllOf\r\n */\r\nexport interface RefreshTokenAllOf {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof RefreshTokenAllOf\r\n */\r\n token?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof RefreshTokenAllOf\r\n */\r\n jwtId?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof RefreshTokenAllOf\r\n */\r\n isUsed: boolean;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof RefreshTokenAllOf\r\n */\r\n isRevoked: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof RefreshTokenAllOf\r\n */\r\n addedDate: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof RefreshTokenAllOf\r\n */\r\n expiryDate: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof RefreshTokenAllOf\r\n */\r\n accountId?: string;\r\n /**\r\n * \r\n * @type {Account}\r\n * @memberof RefreshTokenAllOf\r\n */\r\n account?: Account;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface ResetPasswordModel\r\n */\r\nexport interface ResetPasswordModel {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ResetPasswordModel\r\n */\r\n password: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ResetPasswordModel\r\n */\r\n confirmPassword?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ResetPasswordModel\r\n */\r\n email?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ResetPasswordModel\r\n */\r\n token?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface TokenRequestDTO\r\n */\r\nexport interface TokenRequestDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TokenRequestDTO\r\n */\r\n token: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TokenRequestDTO\r\n */\r\n refreshToken: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TokenRequestDTO\r\n */\r\n accountId: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface UpdateAccountInfoDto\r\n */\r\nexport interface UpdateAccountInfoDto {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpdateAccountInfoDto\r\n */\r\n firstName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpdateAccountInfoDto\r\n */\r\n lastName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpdateAccountInfoDto\r\n */\r\n companyName?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpdateAccountInfoDto\r\n */\r\n jobTitle?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpdateAccountInfoDto\r\n */\r\n phoneNumber?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpdateAccountInfoDto\r\n */\r\n phoneNumberExt?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface UpdateEmailDto\r\n */\r\nexport interface UpdateEmailDto {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpdateEmailDto\r\n */\r\n email?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface UpdatePasswordDto\r\n */\r\nexport interface UpdatePasswordDto {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpdatePasswordDto\r\n */\r\n currentPassword?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpdatePasswordDto\r\n */\r\n newPassword?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpdatePasswordDto\r\n */\r\n confirmPassword?: string;\r\n}\r\n\r\n/**\r\n * AccountApi - axios parameter creator\r\n * @export\r\n */\r\nexport const AccountApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {string} [companyName] \r\n * @param {string} [websiteUrl] \r\n * @param {string} [companyLogo] \r\n * @param {any} [logo] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountAddBadge: async (companyName?: string, websiteUrl?: string, companyLogo?: string, logo?: any, options: any = {}): Promise => {\r\n const localVarPath = `/Account/AddBadge`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\r\n\r\n\r\n if (companyName !== undefined) { \r\n localVarFormParams.append('CompanyName', companyName as any);\r\n }\r\n \r\n if (websiteUrl !== undefined) { \r\n localVarFormParams.append('WebsiteUrl', websiteUrl as any);\r\n }\r\n \r\n if (companyLogo !== undefined) { \r\n localVarFormParams.append('CompanyLogo', companyLogo as any);\r\n }\r\n \r\n if (logo !== undefined) { \r\n localVarFormParams.append('Logo', logo as any);\r\n }\r\n \r\n \r\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = localVarFormParams;\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} planId \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountAddPlan: async (planId: string, options: any = {}): Promise => {\r\n // verify required parameter 'planId' is not null or undefined\r\n assertParamExists('accountAddPlan', 'planId', planId)\r\n const localVarPath = `/Account/AddPlan`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(planId, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {AuthenticatedModel} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountAuthenticate: async (info: AuthenticatedModel, options: any = {}): Promise => {\r\n // verify required parameter 'info' is not null or undefined\r\n assertParamExists('accountAuthenticate', 'info', info)\r\n const localVarPath = `/Account/IsAuthenticated`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(info, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} [token] \r\n * @param {string} [email] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountConfirmEmail: async (token?: string, email?: string, options: any = {}): Promise => {\r\n const localVarPath = `/Account/ConfirmEmail`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n if (token !== undefined) {\r\n localVarQueryParameter['token'] = token;\r\n }\r\n\r\n if (email !== undefined) {\r\n localVarQueryParameter['email'] = email;\r\n }\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {AccountInfo} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountCreateHRAdmin: async (info: AccountInfo, options: any = {}): Promise => {\r\n // verify required parameter 'info' is not null or undefined\r\n assertParamExists('accountCreateHRAdmin', 'info', info)\r\n const localVarPath = `/Account/CreateHRAdmin`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(info, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {ForgotPasswordModel} forgotPasswordModel \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountForgotPassword: async (forgotPasswordModel: ForgotPasswordModel, options: any = {}): Promise => {\r\n // verify required parameter 'forgotPasswordModel' is not null or undefined\r\n assertParamExists('accountForgotPassword', 'forgotPasswordModel', forgotPasswordModel)\r\n const localVarPath = `/Account/ForgotPassword`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(forgotPasswordModel, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountGetLogos: async (options: any = {}): Promise => {\r\n const localVarPath = `/Account/logos`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountGetUserInfo: async (options: any = {}): Promise => {\r\n const localVarPath = `/Account/GetUserInfo`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {AuthenticatedModel} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountLogin: async (info: AuthenticatedModel, options: any = {}): Promise => {\r\n // verify required parameter 'info' is not null or undefined\r\n assertParamExists('accountLogin', 'info', info)\r\n const localVarPath = `/Account/Login`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(info, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} [token] \r\n * @param {string} [email] \r\n * @param {string} [oldEmail] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountReConfirmEmail: async (token?: string, email?: string, oldEmail?: string, options: any = {}): Promise => {\r\n const localVarPath = `/Account/ReConfirmEmail`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n if (token !== undefined) {\r\n localVarQueryParameter['token'] = token;\r\n }\r\n\r\n if (email !== undefined) {\r\n localVarQueryParameter['email'] = email;\r\n }\r\n\r\n if (oldEmail !== undefined) {\r\n localVarQueryParameter['oldEmail'] = oldEmail;\r\n }\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {TokenRequestDTO} tokenRequest \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountRefreshToken: async (tokenRequest: TokenRequestDTO, options: any = {}): Promise => {\r\n // verify required parameter 'tokenRequest' is not null or undefined\r\n assertParamExists('accountRefreshToken', 'tokenRequest', tokenRequest)\r\n const localVarPath = `/Account/RefreshToken`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(tokenRequest, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountResendConfirmation: async (options: any = {}): Promise => {\r\n const localVarPath = `/Account/ResendConfirmation`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {ResetPasswordModel} resetPasswordModel \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountResetPassword: async (resetPasswordModel: ResetPasswordModel, options: any = {}): Promise => {\r\n // verify required parameter 'resetPasswordModel' is not null or undefined\r\n assertParamExists('accountResetPassword', 'resetPasswordModel', resetPasswordModel)\r\n const localVarPath = `/Account/ResetPassword`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(resetPasswordModel, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {UpdateAccountInfoDto} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountUpdateAccount: async (info: UpdateAccountInfoDto, options: any = {}): Promise => {\r\n // verify required parameter 'info' is not null or undefined\r\n assertParamExists('accountUpdateAccount', 'info', info)\r\n const localVarPath = `/Account/UpdateAccount`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(info, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {UpdateEmailDto} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountUpdateEmail: async (info: UpdateEmailDto, options: any = {}): Promise => {\r\n // verify required parameter 'info' is not null or undefined\r\n assertParamExists('accountUpdateEmail', 'info', info)\r\n const localVarPath = `/Account/UpdateEmail`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(info, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {UpdatePasswordDto} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountUpdatePassword: async (info: UpdatePasswordDto, options: any = {}): Promise => {\r\n // verify required parameter 'info' is not null or undefined\r\n assertParamExists('accountUpdatePassword', 'info', info)\r\n const localVarPath = `/Account/UpdatePassword`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(info, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * AccountApi - functional programming interface\r\n * @export\r\n */\r\nexport const AccountApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = AccountApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {string} [companyName] \r\n * @param {string} [websiteUrl] \r\n * @param {string} [companyLogo] \r\n * @param {any} [logo] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountAddBadge(companyName?: string, websiteUrl?: string, companyLogo?: string, logo?: any, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountAddBadge(companyName, websiteUrl, companyLogo, logo, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} planId \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountAddPlan(planId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountAddPlan(planId, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {AuthenticatedModel} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountAuthenticate(info: AuthenticatedModel, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountAuthenticate(info, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} [token] \r\n * @param {string} [email] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountConfirmEmail(token?: string, email?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountConfirmEmail(token, email, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {AccountInfo} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountCreateHRAdmin(info: AccountInfo, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountCreateHRAdmin(info, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {ForgotPasswordModel} forgotPasswordModel \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountForgotPassword(forgotPasswordModel: ForgotPasswordModel, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountForgotPassword(forgotPasswordModel, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountGetLogos(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountGetLogos(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountGetUserInfo(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountGetUserInfo(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {AuthenticatedModel} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountLogin(info: AuthenticatedModel, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountLogin(info, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} [token] \r\n * @param {string} [email] \r\n * @param {string} [oldEmail] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountReConfirmEmail(token?: string, email?: string, oldEmail?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountReConfirmEmail(token, email, oldEmail, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {TokenRequestDTO} tokenRequest \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountRefreshToken(tokenRequest: TokenRequestDTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountRefreshToken(tokenRequest, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountResendConfirmation(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountResendConfirmation(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {ResetPasswordModel} resetPasswordModel \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountResetPassword(resetPasswordModel: ResetPasswordModel, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountResetPassword(resetPasswordModel, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {UpdateAccountInfoDto} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountUpdateAccount(info: UpdateAccountInfoDto, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountUpdateAccount(info, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {UpdateEmailDto} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountUpdateEmail(info: UpdateEmailDto, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountUpdateEmail(info, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {UpdatePasswordDto} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async accountUpdatePassword(info: UpdatePasswordDto, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountUpdatePassword(info, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * AccountApi - factory interface\r\n * @export\r\n */\r\nexport const AccountApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = AccountApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {string} [companyName] \r\n * @param {string} [websiteUrl] \r\n * @param {string} [companyLogo] \r\n * @param {any} [logo] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountAddBadge(companyName?: string, websiteUrl?: string, companyLogo?: string, logo?: any, options?: any): AxiosPromise {\r\n return localVarFp.accountAddBadge(companyName, websiteUrl, companyLogo, logo, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} planId \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountAddPlan(planId: string, options?: any): AxiosPromise {\r\n return localVarFp.accountAddPlan(planId, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {AuthenticatedModel} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountAuthenticate(info: AuthenticatedModel, options?: any): AxiosPromise {\r\n return localVarFp.accountAuthenticate(info, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} [token] \r\n * @param {string} [email] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountConfirmEmail(token?: string, email?: string, options?: any): AxiosPromise {\r\n return localVarFp.accountConfirmEmail(token, email, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {AccountInfo} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountCreateHRAdmin(info: AccountInfo, options?: any): AxiosPromise {\r\n return localVarFp.accountCreateHRAdmin(info, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {ForgotPasswordModel} forgotPasswordModel \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountForgotPassword(forgotPasswordModel: ForgotPasswordModel, options?: any): AxiosPromise {\r\n return localVarFp.accountForgotPassword(forgotPasswordModel, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountGetLogos(options?: any): AxiosPromise> {\r\n return localVarFp.accountGetLogos(options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountGetUserInfo(options?: any): AxiosPromise {\r\n return localVarFp.accountGetUserInfo(options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {AuthenticatedModel} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountLogin(info: AuthenticatedModel, options?: any): AxiosPromise {\r\n return localVarFp.accountLogin(info, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} [token] \r\n * @param {string} [email] \r\n * @param {string} [oldEmail] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountReConfirmEmail(token?: string, email?: string, oldEmail?: string, options?: any): AxiosPromise {\r\n return localVarFp.accountReConfirmEmail(token, email, oldEmail, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {TokenRequestDTO} tokenRequest \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountRefreshToken(tokenRequest: TokenRequestDTO, options?: any): AxiosPromise {\r\n return localVarFp.accountRefreshToken(tokenRequest, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountResendConfirmation(options?: any): AxiosPromise {\r\n return localVarFp.accountResendConfirmation(options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {ResetPasswordModel} resetPasswordModel \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountResetPassword(resetPasswordModel: ResetPasswordModel, options?: any): AxiosPromise {\r\n return localVarFp.accountResetPassword(resetPasswordModel, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {UpdateAccountInfoDto} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountUpdateAccount(info: UpdateAccountInfoDto, options?: any): AxiosPromise {\r\n return localVarFp.accountUpdateAccount(info, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {UpdateEmailDto} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountUpdateEmail(info: UpdateEmailDto, options?: any): AxiosPromise {\r\n return localVarFp.accountUpdateEmail(info, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {UpdatePasswordDto} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n accountUpdatePassword(info: UpdatePasswordDto, options?: any): AxiosPromise {\r\n return localVarFp.accountUpdatePassword(info, options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * AccountApi - object-oriented interface\r\n * @export\r\n * @class AccountApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class AccountApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {string} [companyName] \r\n * @param {string} [websiteUrl] \r\n * @param {string} [companyLogo] \r\n * @param {any} [logo] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountAddBadge(companyName?: string, websiteUrl?: string, companyLogo?: string, logo?: any, options?: any) {\r\n return AccountApiFp(this.configuration).accountAddBadge(companyName, websiteUrl, companyLogo, logo, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} planId \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountAddPlan(planId: string, options?: any) {\r\n return AccountApiFp(this.configuration).accountAddPlan(planId, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {AuthenticatedModel} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountAuthenticate(info: AuthenticatedModel, options?: any) {\r\n return AccountApiFp(this.configuration).accountAuthenticate(info, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} [token] \r\n * @param {string} [email] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountConfirmEmail(token?: string, email?: string, options?: any) {\r\n return AccountApiFp(this.configuration).accountConfirmEmail(token, email, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {AccountInfo} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountCreateHRAdmin(info: AccountInfo, options?: any) {\r\n return AccountApiFp(this.configuration).accountCreateHRAdmin(info, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {ForgotPasswordModel} forgotPasswordModel \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountForgotPassword(forgotPasswordModel: ForgotPasswordModel, options?: any) {\r\n return AccountApiFp(this.configuration).accountForgotPassword(forgotPasswordModel, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountGetLogos(options?: any) {\r\n return AccountApiFp(this.configuration).accountGetLogos(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountGetUserInfo(options?: any) {\r\n return AccountApiFp(this.configuration).accountGetUserInfo(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {AuthenticatedModel} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountLogin(info: AuthenticatedModel, options?: any) {\r\n return AccountApiFp(this.configuration).accountLogin(info, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} [token] \r\n * @param {string} [email] \r\n * @param {string} [oldEmail] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountReConfirmEmail(token?: string, email?: string, oldEmail?: string, options?: any) {\r\n return AccountApiFp(this.configuration).accountReConfirmEmail(token, email, oldEmail, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {TokenRequestDTO} tokenRequest \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountRefreshToken(tokenRequest: TokenRequestDTO, options?: any) {\r\n return AccountApiFp(this.configuration).accountRefreshToken(tokenRequest, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountResendConfirmation(options?: any) {\r\n return AccountApiFp(this.configuration).accountResendConfirmation(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {ResetPasswordModel} resetPasswordModel \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountResetPassword(resetPasswordModel: ResetPasswordModel, options?: any) {\r\n return AccountApiFp(this.configuration).accountResetPassword(resetPasswordModel, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {UpdateAccountInfoDto} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountUpdateAccount(info: UpdateAccountInfoDto, options?: any) {\r\n return AccountApiFp(this.configuration).accountUpdateAccount(info, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {UpdateEmailDto} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountUpdateEmail(info: UpdateEmailDto, options?: any) {\r\n return AccountApiFp(this.configuration).accountUpdateEmail(info, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {UpdatePasswordDto} info \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AccountApi\r\n */\r\n public accountUpdatePassword(info: UpdatePasswordDto, options?: any) {\r\n return AccountApiFp(this.configuration).accountUpdatePassword(info, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n\r\n\r\n/**\r\n * PingApi - axios parameter creator\r\n * @export\r\n */\r\nexport const PingApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n pingIndex: async (options: any = {}): Promise => {\r\n const localVarPath = `/Ping`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * PingApi - functional programming interface\r\n * @export\r\n */\r\nexport const PingApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = PingApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async pingIndex(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.pingIndex(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * PingApi - factory interface\r\n * @export\r\n */\r\nexport const PingApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = PingApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n pingIndex(options?: any): AxiosPromise {\r\n return localVarFp.pingIndex(options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * PingApi - object-oriented interface\r\n * @export\r\n * @class PingApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class PingApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PingApi\r\n */\r\n public pingIndex(options?: any) {\r\n return PingApiFp(this.configuration).pingIndex(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n\r\n\r\n","export const Paths = {\r\n HOME: \"/\",\r\n LOGISTER: \"/logister\",\r\n MYACCOUNT: \"/my-account\",\r\n PLANS: \"/plans\",\r\n EDIT_PLAN: \"/edit-plan\",\r\n GROUPS: '/groups',\r\n ADD_GROUP: '/groups/add',\r\n SUPPORT: '/support',\r\n PRIVACY: '/privacy',\r\n ABOUT: '/about',\r\n LOGOS: '/logos',\r\n HTTP_404_ERROR: '/404-error',\r\n HTTP_500_ERROR: '/500-error',\r\n FORGOT_PASSWORD: '/forgot-password',\r\n RESET_PASSWORD: '/reset-password',\r\n CONFIRM_EMAIL: '/activate-account',\r\n PAYMENT_SUCCESS: \"/successful-payment\",\r\n PAYMENT_FAILURE: \"/failed-payment\",\r\n}\r\n\r\nexport const CookieNames = {\r\n ACCOUNT_TOKEN: \"token\",\r\n REFRESH_TOKEN: \"refresh\"\r\n}\r\n\r\nexport const EmailTexts = {\r\n INVITATION_SUBJECT: 'Company Bias Testing Initiative',\r\n INVITATION_BODY: \"

Hi! 

Our company takes diversity and inclusion seriously. As part of our continuing strategy to make this the best place to work we have chosen to address unconscious bias by using BiasProof’s testing and training tools. 

The link below will take you to the BiasProof testing tools. There are a few important things to know: 

  1. Your results are completely confidential – nobody other than you will see your results 
  2. We would like you to complete the testing and training as soon as possible 
  3. The BiasProof tools are designed to run on your mobile phone, if you haven’t received this email on your phone, please forward it, if you have this on your phone, use it to click the link below 
  4. As a company, all we will see is the aggregate scores of groups of staff – again, no individual results! 
  5. We believe that BiasProof is the beginning of a journey towards eliminating the issues in our workplace that are caused by unconscious biases. The test will not instantly make you Bias Proof, but instead provide you proof of your own biases. We hope that you’ll learn from and think about, your results, and that introspection will help you become a less biased person. 
  6. We plan to retest to you periodically, but we’ve paid for access to the test for a whole year, so feel free to use it again to check your own progress when you feel the time is right. 

Thanks! 

\",\r\n REMINDER_SUBJECT: 'Reminder: Company Bias Testing Initiative',\r\n REMINDER_BODY: \"

Hey! 

Just a quick follow up, we noticed you haven’t completed the BiasProof testing and training course. As a company, we’re committed to eliminating the problems caused by bias in the workplace and we’d really appreciate it if you could take some time to complete the training. 

Remember, your results are anonymous, but the aggregate scores are important to our company since we will use them to not only benchmark our progress but also to determine if we need to offer more training in the future. 

Thanks! 

\"\r\n}","import React, { useState } from \"react\";\r\nimport {\r\n Drawer,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemText\r\n} from \"@material-ui/core\";\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport { Link } from \"@reach/router\";\r\nimport { Menu } from \"@material-ui/icons\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n list: {\r\n width: 250\r\n },\r\n linkText: {\r\n textDecoration: `none`,\r\n textTransform: `uppercase`,\r\n color: `black`\r\n }\r\n }),\r\n);\r\n\r\ninterface IProps {\r\n navLinks: { title: string, path: string }[]\r\n}\r\nconst SideDrawer = ({ navLinks }: IProps) => {\r\n const classes = useStyles();\r\n const [displayDrawer, setDisplayDrawer] = useState(false);\r\n\r\n const handleDrawer = (display: boolean) => (event: any) => {\r\n if (\r\n event.type === \"keydown\" &&\r\n (event.key === \"Tab\" || event.key === \"Shift\")\r\n ) {\r\n return;\r\n }\r\n\r\n setDisplayDrawer(display);\r\n };\r\n\r\n const sideDrawerList = () => (\r\n \r\n \r\n {navLinks.map(({ title, path }) => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n {sideDrawerList()}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SideDrawer;\r\n","\r\nimport { createSelector } from \"@reduxjs/toolkit\";\r\nimport { IUserState } from \"./userSlice\";\r\n\r\nconst getId = (_: any, id: any) => id;\r\nconst _getUser = (state: { user: IUserState }) => state.user;\r\n\r\nexport const getUser = createSelector(\r\n [_getUser],\r\n (user: IUserState) => {\r\n return user.info;\r\n }\r\n)\r\n\r\nexport const getCountry = createSelector(\r\n [_getUser],\r\n (user: IUserState) => {\r\n return user.info.country;\r\n }\r\n)\r\n\r\nexport const isAuthenticated = createSelector(\r\n [_getUser],\r\n (user: IUserState) => {\r\n return user.status === 'authenticated';\r\n }\r\n)\r\n\r\nexport const isEmailConfirmed = createSelector(\r\n [_getUser],\r\n (user: IUserState) => {\r\n return user.info.authenticatedEmail;\r\n }\r\n)\r\n\r\nexport const getBadge = createSelector(\r\n [_getUser],\r\n (user: IUserState) => {\r\n return user.info?.badge;\r\n }\r\n)","/* tslint:disable */\r\n/* eslint-disable */\r\n/**\r\n * Bias Proof Account API\r\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * \r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nimport { Configuration } from \"./configuration\";\r\n// Some imports not used depending on template conditions\r\n// @ts-ignore\r\nimport globalAxios, { AxiosPromise, AxiosInstance } from 'axios';\r\n\r\nexport const BASE_PATH = \"http://localhost:5050\".replace(/\\/+$/, \"\");\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const COLLECTION_FORMATS = {\r\n csv: \",\",\r\n ssv: \" \",\r\n tsv: \"\\t\",\r\n pipes: \"|\",\r\n};\r\n\r\n/**\r\n *\r\n * @export\r\n * @interface RequestArgs\r\n */\r\nexport interface RequestArgs {\r\n url: string;\r\n options: any;\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n * @class BaseAPI\r\n */\r\nexport class BaseAPI {\r\n protected configuration: Configuration | undefined;\r\n\r\n constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {\r\n if (configuration) {\r\n this.configuration = configuration;\r\n this.basePath = configuration.basePath || this.basePath;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n *\r\n * @export\r\n * @class RequiredError\r\n * @extends {Error}\r\n */\r\nexport class RequiredError extends Error {\r\n name: \"RequiredError\" = \"RequiredError\";\r\n constructor(public field: string, msg?: string) {\r\n super(msg);\r\n }\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\n/**\r\n * Bias Proof Account API\r\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * \r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nimport { Configuration } from \"./configuration\";\r\nimport { RequiredError, RequestArgs } from \"./base\";\r\nimport { AxiosInstance } from 'axios';\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const DUMMY_BASE_URL = 'https://example.com'\r\n\r\n/**\r\n *\r\n * @throws {RequiredError}\r\n * @export\r\n */\r\nexport const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) {\r\n if (paramValue === null || paramValue === undefined) {\r\n throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) {\r\n if (configuration && configuration.apiKey) {\r\n const localVarApiKeyValue = typeof configuration.apiKey === 'function'\r\n ? await configuration.apiKey(keyParamName)\r\n : await configuration.apiKey;\r\n object[keyParamName] = localVarApiKeyValue;\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setBasicAuthToObject = function (object: any, configuration?: Configuration) {\r\n if (configuration && (configuration.username || configuration.password)) {\r\n object[\"auth\"] = { username: configuration.username, password: configuration.password };\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setBearerAuthToObject = async function (object: any, configuration?: Configuration) {\r\n if (configuration && configuration.accessToken) {\r\n const accessToken = typeof configuration.accessToken === 'function'\r\n ? await configuration.accessToken()\r\n : await configuration.accessToken;\r\n object[\"Authorization\"] = \"Bearer \" + accessToken;\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) {\r\n if (configuration && configuration.accessToken) {\r\n const localVarAccessTokenValue = typeof configuration.accessToken === 'function'\r\n ? await configuration.accessToken(name, scopes)\r\n : await configuration.accessToken;\r\n object[\"Authorization\"] = \"Bearer \" + localVarAccessTokenValue;\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setSearchParams = function (url: URL, ...objects: any[]) {\r\n const searchParams = new URLSearchParams(url.search);\r\n for (const object of objects) {\r\n for (const key in object) {\r\n searchParams.set(key, object[key]);\r\n }\r\n }\r\n url.search = searchParams.toString();\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) {\r\n const nonString = typeof value !== 'string';\r\n const needsSerialization = nonString && configuration && configuration.isJsonMime\r\n ? configuration.isJsonMime(requestOptions.headers['Content-Type'])\r\n : nonString;\r\n return needsSerialization\r\n ? JSON.stringify(value !== undefined ? value : {})\r\n : (value || \"\");\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const toPathString = function (url: URL) {\r\n return url.pathname + url.search + url.hash\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {\r\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\r\n const axiosRequestArgs = {...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url};\r\n return axios.request(axiosRequestArgs);\r\n };\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\n/**\r\n * Bias Proof Account API\r\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * \r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport interface ConfigurationParameters {\r\n apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise);\r\n username?: string;\r\n password?: string;\r\n accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise);\r\n basePath?: string;\r\n baseOptions?: any;\r\n formDataCtor?: new () => any;\r\n}\r\n\r\nexport class Configuration {\r\n /**\r\n * parameter for apiKey security\r\n * @param name security name\r\n * @memberof Configuration\r\n */\r\n apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise);\r\n /**\r\n * parameter for basic security\r\n *\r\n * @type {string}\r\n * @memberof Configuration\r\n */\r\n username?: string;\r\n /**\r\n * parameter for basic security\r\n *\r\n * @type {string}\r\n * @memberof Configuration\r\n */\r\n password?: string;\r\n /**\r\n * parameter for oauth2 security\r\n * @param name security name\r\n * @param scopes oauth2 scope\r\n * @memberof Configuration\r\n */\r\n accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise);\r\n /**\r\n * override base path\r\n *\r\n * @type {string}\r\n * @memberof Configuration\r\n */\r\n basePath?: string;\r\n /**\r\n * base options for axios calls\r\n *\r\n * @type {any}\r\n * @memberof Configuration\r\n */\r\n baseOptions?: any;\r\n /**\r\n * The FormData constructor that will be used to create multipart form data\r\n * requests. You can inject this here so that execution environments that\r\n * do not support the FormData class can still run the generated client.\r\n *\r\n * @type {new () => FormData}\r\n */\r\n formDataCtor?: new () => any;\r\n\r\n constructor(param: ConfigurationParameters = {}) {\r\n this.apiKey = param.apiKey;\r\n this.username = param.username;\r\n this.password = param.password;\r\n this.accessToken = param.accessToken;\r\n this.basePath = param.basePath;\r\n this.baseOptions = param.baseOptions;\r\n this.formDataCtor = param.formDataCtor;\r\n }\r\n\r\n /**\r\n * Check if the given MIME is a JSON MIME.\r\n * JSON MIME examples:\r\n * application/json\r\n * application/json; charset=UTF8\r\n * APPLICATION/JSON\r\n * application/vnd.company+json\r\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\r\n * @return True if the given MIME is JSON, false otherwise.\r\n */\r\n public isJsonMime(mime: string): boolean {\r\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\r\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\r\n }\r\n}\r\n","import { navigate } from \"@reach/router\";\r\nimport axios, { AxiosResponse } from \"axios\";\r\nimport _ from \"lodash\";\r\nimport { enqueueNotification } from \"store/ui/uiSlice\";\r\nimport { logout } from \"store/user/userSlice\";\r\nimport { Paths } from \"utils/constants\";\r\n\r\nconst interceptor = (store: any) => {\r\n axios.interceptors.request.use(\r\n (conf) => {\r\n // you can add some information before send it.\r\n // conf.headers['Auth'] = 'some token'\r\n return conf;\r\n },\r\n (error) => {\r\n return Promise.reject(error);\r\n }\r\n );\r\n axios.interceptors.response.use(\r\n (next) => {\r\n return Promise.resolve(next);\r\n },\r\n (error) => {\r\n // You can handle error here and trigger warning message without get in the code inside\r\n if (error.response.status === 401 || error.response.status === 403) {\r\n store.dispatch(logout());\r\n navigate(Paths.LOGISTER);\r\n }\r\n return Promise.reject(error.response);\r\n }\r\n );\r\n};\r\n\r\nexport default {\r\n axios,\r\n interceptor\r\n};","import { AuthResult, TokenRequestDTO } from \"external-api/account-api\";\r\nimport Cookies from \"js-cookie\";\r\nimport AccountService from \"services/accountService\";\r\nimport { CookieNames } from \"./constants\";\r\n\r\nexport const getToken = () => {\r\n let token = Cookies.get(CookieNames.ACCOUNT_TOKEN);\r\n if (token) return token;\r\n}\r\n\r\nexport const saveToken = (authResult: AuthResult) => {\r\n Cookies.set(CookieNames.ACCOUNT_TOKEN, authResult?.token!, { sameSite: \"strict\" });\r\n Cookies.set(CookieNames.REFRESH_TOKEN, authResult?.refreshToken!, { sameSite: \"strict\" });\r\n}\r\n\r\nexport const removeToken = () => {\r\n Cookies.remove(CookieNames.ACCOUNT_TOKEN);\r\n Cookies.remove(CookieNames.REFRESH_TOKEN);\r\n}\r\n\r\nexport const getAccountIdFromToken = (jwtToken?: string): string | null => {\r\n if (!jwtToken) {\r\n return null;\r\n }\r\n const jwt = JSON.parse(atob(jwtToken.split('.')[1]));\r\n\r\n return jwt.unique_name || null;\r\n}\r\n\r\nexport const getExpirationDate = (jwtToken?: string): number | null => {\r\n if (!jwtToken) {\r\n return null;\r\n }\r\n\r\n const jwt = JSON.parse(atob(jwtToken.split('.')[1]));\r\n\r\n // multiply by 1000 to convert seconds into milliseconds\r\n return jwt && jwt.exp && jwt.exp * 1000 || null;\r\n};\r\n\r\nexport const isExpired = (exp?: number | null) => {\r\n if (!exp) {\r\n return false;\r\n }\r\n\r\n return Date.now() > exp;\r\n};","import { AccountApi, ConfigurationParameters, Configuration, BadgeDTO, TokenRequestDTO, AuthenticatedModel, AccountInfo, ForgotPasswordModel, ResetPasswordModel, UpdateAccountInfoDto, UpdateEmailDto, UpdatePasswordDto } from \"external-api/account-api\";\r\nimport Cookies from \"js-cookie\";\r\nimport { trackPromise } from \"react-promise-tracker\";\r\nimport { CookieNames } from \"utils/constants\";\r\nimport http from \"./axiosService\";\r\nimport { getToken, saveToken } from \"utils/cookieHelper\";\r\n\r\nconst apiUrl = `${process.env.REACT_APP_API_URL}`;\r\n\r\n\r\nfunction getApi() {\r\n const token = getToken();\r\n const configParams: ConfigurationParameters = {\r\n basePath: apiUrl,\r\n baseOptions: {\r\n headers:\r\n {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n };\r\n\r\n const configuration = new Configuration(configParams);\r\n const axios = http.axios;\r\n return new AccountApi(configuration, apiUrl, axios);\r\n}\r\n\r\nexport default class AccountService {\r\n\r\n api: AccountApi\r\n\r\n constructor() {\r\n this.api = getApi();\r\n }\r\n\r\n createAccountAsync = async (userInfoData: AccountInfo) => {\r\n const resp = await trackPromise(this.api.accountCreateHRAdmin(userInfoData));\r\n\r\n saveToken(resp.data.authResult!);\r\n return resp.data;\r\n }\r\n\r\n loginAsync = async (userInfoData: AuthenticatedModel) => {\r\n const resp = await trackPromise(this.api.accountLogin(userInfoData));\r\n saveToken(resp.data.authResult!);\r\n return resp.data;\r\n }\r\n\r\n refreshToken = async (tokenRequest: TokenRequestDTO) => {\r\n\r\n const resp = await this.api.accountRefreshToken(tokenRequest);\r\n return resp.data;\r\n }\r\n\r\n forgotPasswordAsync = async (forgotPasswordData: ForgotPasswordModel) => {\r\n const resp = await trackPromise(this.api.accountForgotPassword(forgotPasswordData));\r\n return resp.data;\r\n }\r\n\r\n resetPasswordAsync = async (resetPasswordData: ResetPasswordModel) => {\r\n const resp = await trackPromise(this.api.accountResetPassword(resetPasswordData));\r\n return resp.data;\r\n }\r\n\r\n addBadgeAsync = async (companyName: string, websiteUrl: string, companyLogo: string, logo: any) => {\r\n const resp = await trackPromise(this.api.accountAddBadge(companyName, websiteUrl, companyLogo, logo));\r\n return resp.data;\r\n }\r\n\r\n getLogos = async () => {\r\n const resp = await trackPromise(this.api.accountGetLogos());\r\n return resp.data;\r\n }\r\n\r\n addPlanAsync = async (planId: string) => {\r\n const resp = await trackPromise(this.api.accountAddPlan(planId));\r\n return resp.data;\r\n }\r\n\r\n confirmEmail = async (email: string, token: string) => {\r\n const resp = await trackPromise(this.api.accountConfirmEmail(token, email));\r\n return resp.data;\r\n }\r\n\r\n resendConfirmationEmail = async () => {\r\n const resp = await trackPromise(this.api.accountResendConfirmation());\r\n return resp.data;\r\n }\r\n\r\n getUserInfo = async () => {\r\n const resp = await trackPromise(this.api.accountGetUserInfo());\r\n return resp.data;\r\n }\r\n\r\n updateUserAsync = async (updateUser: UpdateAccountInfoDto) => {\r\n const resp = await trackPromise(this.api.accountUpdateAccount(updateUser));\r\n return resp.data;\r\n }\r\n\r\n updateEmailAsync = async (updateEmail: UpdateEmailDto) => {\r\n const resp = await trackPromise(this.api.accountUpdateEmail(updateEmail));\r\n return resp.data;\r\n }\r\n\r\n reConfirmEmailAsync = async (token: string, email: string, oldEmail: string) => {\r\n const resp = await trackPromise(this.api.accountReConfirmEmail(token, email, oldEmail));\r\n return resp.data;\r\n }\r\n\r\n updatePasswordAsync = async (updatePassword: UpdatePasswordDto) => {\r\n const resp = await trackPromise(this.api.accountUpdatePassword(updatePassword));\r\n return resp.data;\r\n }\r\n}","/* tslint:disable */\r\n/* eslint-disable */\r\n/**\r\n * Bias Proof License API\r\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * \r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nimport { Configuration } from './configuration';\r\nimport globalAxios, { AxiosPromise, AxiosInstance } from 'axios';\r\n// Some imports not used depending on template conditions\r\n// @ts-ignore\r\nimport { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common';\r\n// @ts-ignore\r\nimport { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base';\r\n\r\n/**\r\n * \r\n * @export\r\n * @interface AggregateCourseResultDTO\r\n */\r\nexport interface AggregateCourseResultDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AggregateCourseResultDTO\r\n */\r\n courseId?: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof AggregateCourseResultDTO\r\n */\r\n numberOfPassed: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof AggregateCourseResultDTO\r\n */\r\n numberOfCompleted: number;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof AggregateCourseResultDTO\r\n */\r\n scores?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface AggregateTestResultDTO\r\n */\r\nexport interface AggregateTestResultDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof AggregateTestResultDTO\r\n */\r\n testId?: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof AggregateTestResultDTO\r\n */\r\n numberOfCompleted: number;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof AggregateTestResultDTO\r\n */\r\n scores?: Array;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof AggregateTestResultDTO\r\n */\r\n surveyResponses?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface CourseConfigurationDTO\r\n */\r\nexport interface CourseConfigurationDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof CourseConfigurationDTO\r\n */\r\n categoryId?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof CourseConfigurationDTO\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof CourseConfigurationDTO\r\n */\r\n courseModuleIds?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface CourseResultDTO\r\n */\r\nexport interface CourseResultDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof CourseResultDTO\r\n */\r\n participantId?: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof CourseResultDTO\r\n */\r\n score: number;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof CourseResultDTO\r\n */\r\n passed: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof CourseResultDTO\r\n */\r\n completedDate: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof CourseResultDTO\r\n */\r\n token?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof CourseResultDTO\r\n */\r\n courseId?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof CourseResultDTO\r\n */\r\n feedback?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof CourseResultDTO\r\n */\r\n anonymousUser: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof CourseResultDTO\r\n */\r\n scheduleId?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof CourseResultDTO\r\n */\r\n groupId?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface CreateCheckoutSessionRequest\r\n */\r\nexport interface CreateCheckoutSessionRequest {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof CreateCheckoutSessionRequest\r\n */\r\n priceId?: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof CreateCheckoutSessionRequest\r\n */\r\n quantity: number;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface DowngradeSubscriptionRequest\r\n */\r\nexport interface DowngradeSubscriptionRequest {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof DowngradeSubscriptionRequest\r\n */\r\n subscriptionID?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof DowngradeSubscriptionRequest\r\n */\r\n priceId?: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof DowngradeSubscriptionRequest\r\n */\r\n quantity: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof DowngradeSubscriptionRequest\r\n */\r\n quantityRemoved: number;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface EcomPlanDTO\r\n */\r\nexport interface EcomPlanDTO {\r\n /**\r\n * \r\n * @type {Product}\r\n * @memberof EcomPlanDTO\r\n */\r\n product?: Product;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof EcomPlanDTO\r\n */\r\n recurringPrices?: Array;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof EcomPlanDTO\r\n */\r\n oneTimePrices?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface EmailConfigurationDTO\r\n */\r\nexport interface EmailConfigurationDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof EmailConfigurationDTO\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof EmailConfigurationDTO\r\n */\r\n invitationEmailSubject?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof EmailConfigurationDTO\r\n */\r\n invitationEmailBody?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof EmailConfigurationDTO\r\n */\r\n reminderEmailSubject?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof EmailConfigurationDTO\r\n */\r\n reminderEmailBody?: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof EmailConfigurationDTO\r\n */\r\n numberOfReminders: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof EmailConfigurationDTO\r\n */\r\n daysBetweenReminders: number;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof EmailConfigurationDTO\r\n */\r\n invitationalEmailDates?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface ExpandableFieldOfProduct\r\n */\r\nexport interface ExpandableFieldOfProduct {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ExpandableFieldOfProduct\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {Product}\r\n * @memberof ExpandableFieldOfProduct\r\n */\r\n expandedObject?: Product;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface GroupDTO\r\n */\r\nexport interface GroupDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof GroupDTO\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {EmailConfigurationDTO}\r\n * @memberof GroupDTO\r\n */\r\n emailConfiguration?: EmailConfigurationDTO;\r\n /**\r\n * \r\n * @type {PlanConfigurationDTO}\r\n * @memberof GroupDTO\r\n */\r\n planConfiguration?: PlanConfigurationDTO;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof GroupDTO\r\n */\r\n name?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof GroupDTO\r\n */\r\n description?: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof GroupDTO\r\n */\r\n numberOfSlotsUsed: number;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof GroupDTO\r\n */\r\n participants?: Array;\r\n /**\r\n * \r\n * @type {GroupStatus}\r\n * @memberof GroupDTO\r\n */\r\n status: GroupStatus;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof GroupDTO\r\n */\r\n anonymousUsers: boolean;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof GroupDTO\r\n */\r\n testSchedules?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface GroupOverviewDTO\r\n */\r\nexport interface GroupOverviewDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof GroupOverviewDTO\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof GroupOverviewDTO\r\n */\r\n name?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof GroupOverviewDTO\r\n */\r\n description?: string;\r\n /**\r\n * \r\n * @type {EmailConfigurationDTO}\r\n * @memberof GroupOverviewDTO\r\n */\r\n emailConfiguration?: EmailConfigurationDTO;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface GroupResultsDTO\r\n */\r\nexport interface GroupResultsDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof GroupResultsDTO\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof GroupResultsDTO\r\n */\r\n name?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof GroupResultsDTO\r\n */\r\n description?: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof GroupResultsDTO\r\n */\r\n numberOfSlotsUsed: number;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof GroupResultsDTO\r\n */\r\n nextDate?: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof GroupResultsDTO\r\n */\r\n results?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @enum {string}\r\n */\r\nexport enum GroupStatus {\r\n NUMBER_0 = 0,\r\n NUMBER_1 = 1,\r\n NUMBER_2 = 2\r\n}\r\n\r\n/**\r\n * \r\n * @export\r\n * @interface ImplicitBiasInputDTO\r\n */\r\nexport interface ImplicitBiasInputDTO {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof ImplicitBiasInputDTO\r\n */\r\n responseTimeMilliseconds: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof ImplicitBiasInputDTO\r\n */\r\n blockID: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof ImplicitBiasInputDTO\r\n */\r\n trialID: number;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof ImplicitBiasInputDTO\r\n */\r\n correct: boolean;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @enum {string}\r\n */\r\nexport enum ImplicitBiasInterpretation {\r\n NUMBER_0 = 0,\r\n NUMBER_1 = 1,\r\n NUMBER_2 = 2,\r\n NUMBER_3 = 3,\r\n NUMBER_4 = 4\r\n}\r\n\r\n/**\r\n * \r\n * @export\r\n * @enum {string}\r\n */\r\nexport enum ImplicitBiasInterpretationDirection {\r\n NUMBER_0 = 0,\r\n NUMBER_1 = 1\r\n}\r\n\r\n/**\r\n * \r\n * @export\r\n * @interface ParticipantsDTO\r\n */\r\nexport interface ParticipantsDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ParticipantsDTO\r\n */\r\n groupId?: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof ParticipantsDTO\r\n */\r\n participants?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface PlanConfigurationDTO\r\n */\r\nexport interface PlanConfigurationDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PlanConfigurationDTO\r\n */\r\n name?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PlanConfigurationDTO\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PlanConfigurationDTO\r\n */\r\n groupId?: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof PlanConfigurationDTO\r\n */\r\n testConfiguration?: Array;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof PlanConfigurationDTO\r\n */\r\n courseConfiguration?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface PlanDTO\r\n */\r\nexport interface PlanDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PlanDTO\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof PlanDTO\r\n */\r\n hasStripe: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PlanDTO\r\n */\r\n name?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PlanDTO\r\n */\r\n description?: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PlanDTO\r\n */\r\n price: number;\r\n /**\r\n * \r\n * @type {PlanFeaturesDTO}\r\n * @memberof PlanDTO\r\n */\r\n features?: PlanFeaturesDTO;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof PlanDTO\r\n */\r\n pendingPayment: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PlanDTO\r\n */\r\n stripeCustomerID?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PlanDTO\r\n */\r\n stripeSubscriptionID?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PlanDTO\r\n */\r\n stripeProductID?: string;\r\n /**\r\n * \r\n * @type {SubscriptionDTO}\r\n * @memberof PlanDTO\r\n */\r\n currentSubscription?: SubscriptionDTO;\r\n /**\r\n * \r\n * @type {SubscriptionDTO}\r\n * @memberof PlanDTO\r\n */\r\n nextSubscription?: SubscriptionDTO;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface PlanFeaturesDTO\r\n */\r\nexport interface PlanFeaturesDTO {\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof PlanFeaturesDTO\r\n */\r\n allowAnonymousUsers: boolean;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PlanFeaturesDTO\r\n */\r\n maxNumAnonymousUsers: number;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof PlanFeaturesDTO\r\n */\r\n allowEmailUsers: boolean;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PlanFeaturesDTO\r\n */\r\n maxNumEmailUsers: number;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface Price\r\n */\r\nexport interface Price {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Price\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Price\r\n */\r\n object?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof Price\r\n */\r\n active: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Price\r\n */\r\n billing_scheme?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Price\r\n */\r\n created: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Price\r\n */\r\n currency?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof Price\r\n */\r\n deleted?: boolean;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof Price\r\n */\r\n livemode: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Price\r\n */\r\n lookup_key?: string;\r\n /**\r\n * \r\n * @type {{ [key: string]: string; }}\r\n * @memberof Price\r\n */\r\n metadata?: { [key: string]: string; };\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Price\r\n */\r\n nickname?: string;\r\n /**\r\n * \r\n * @type {ExpandableFieldOfProduct}\r\n * @memberof Price\r\n */\r\n product?: ExpandableFieldOfProduct;\r\n /**\r\n * \r\n * @type {PriceRecurring}\r\n * @memberof Price\r\n */\r\n recurring?: PriceRecurring;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof Price\r\n */\r\n tiers?: Array;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Price\r\n */\r\n tiers_mode?: string;\r\n /**\r\n * \r\n * @type {PriceTransformQuantity}\r\n * @memberof Price\r\n */\r\n transform_quantity?: PriceTransformQuantity;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Price\r\n */\r\n type?: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof Price\r\n */\r\n unit_amount?: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof Price\r\n */\r\n unit_amount_decimal?: number;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface PriceAllOf\r\n */\r\nexport interface PriceAllOf {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceAllOf\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceAllOf\r\n */\r\n object?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof PriceAllOf\r\n */\r\n active: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceAllOf\r\n */\r\n billing_scheme?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceAllOf\r\n */\r\n created: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceAllOf\r\n */\r\n currency?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof PriceAllOf\r\n */\r\n deleted?: boolean;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof PriceAllOf\r\n */\r\n livemode: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceAllOf\r\n */\r\n lookup_key?: string;\r\n /**\r\n * \r\n * @type {{ [key: string]: string; }}\r\n * @memberof PriceAllOf\r\n */\r\n metadata?: { [key: string]: string; };\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceAllOf\r\n */\r\n nickname?: string;\r\n /**\r\n * \r\n * @type {ExpandableFieldOfProduct}\r\n * @memberof PriceAllOf\r\n */\r\n product?: ExpandableFieldOfProduct;\r\n /**\r\n * \r\n * @type {PriceRecurring}\r\n * @memberof PriceAllOf\r\n */\r\n recurring?: PriceRecurring;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof PriceAllOf\r\n */\r\n tiers?: Array;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceAllOf\r\n */\r\n tiers_mode?: string;\r\n /**\r\n * \r\n * @type {PriceTransformQuantity}\r\n * @memberof PriceAllOf\r\n */\r\n transform_quantity?: PriceTransformQuantity;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceAllOf\r\n */\r\n type?: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceAllOf\r\n */\r\n unit_amount?: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceAllOf\r\n */\r\n unit_amount_decimal?: number;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface PriceRecurring\r\n */\r\nexport interface PriceRecurring {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceRecurring\r\n */\r\n aggregate_usage?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceRecurring\r\n */\r\n interval?: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceRecurring\r\n */\r\n interval_count: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceRecurring\r\n */\r\n trial_period_days?: number;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceRecurring\r\n */\r\n usage_type?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface PriceRecurringAllOf\r\n */\r\nexport interface PriceRecurringAllOf {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceRecurringAllOf\r\n */\r\n aggregate_usage?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceRecurringAllOf\r\n */\r\n interval?: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceRecurringAllOf\r\n */\r\n interval_count: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceRecurringAllOf\r\n */\r\n trial_period_days?: number;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceRecurringAllOf\r\n */\r\n usage_type?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface PriceTier\r\n */\r\nexport interface PriceTier {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceTier\r\n */\r\n flat_amount?: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceTier\r\n */\r\n flat_amount_decimal?: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceTier\r\n */\r\n unit_amount?: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceTier\r\n */\r\n unit_amount_decimal?: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceTier\r\n */\r\n up_to?: number;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface PriceTierAllOf\r\n */\r\nexport interface PriceTierAllOf {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceTierAllOf\r\n */\r\n flat_amount?: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceTierAllOf\r\n */\r\n flat_amount_decimal?: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceTierAllOf\r\n */\r\n unit_amount?: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceTierAllOf\r\n */\r\n unit_amount_decimal?: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceTierAllOf\r\n */\r\n up_to?: number;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface PriceTransformQuantity\r\n */\r\nexport interface PriceTransformQuantity {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceTransformQuantity\r\n */\r\n divide_by: number;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceTransformQuantity\r\n */\r\n round?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface PriceTransformQuantityAllOf\r\n */\r\nexport interface PriceTransformQuantityAllOf {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof PriceTransformQuantityAllOf\r\n */\r\n divide_by: number;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof PriceTransformQuantityAllOf\r\n */\r\n round?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface Product\r\n */\r\nexport interface Product {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Product\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Product\r\n */\r\n object?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof Product\r\n */\r\n active: boolean;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof Product\r\n */\r\n attributes?: Array;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Product\r\n */\r\n caption?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Product\r\n */\r\n created: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof Product\r\n */\r\n deactivate_on?: Array;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof Product\r\n */\r\n deleted?: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Product\r\n */\r\n description?: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof Product\r\n */\r\n images?: Array;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof Product\r\n */\r\n livemode: boolean;\r\n /**\r\n * \r\n * @type {{ [key: string]: string; }}\r\n * @memberof Product\r\n */\r\n metadata?: { [key: string]: string; };\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Product\r\n */\r\n name?: string;\r\n /**\r\n * \r\n * @type {ProductPackageDimensions}\r\n * @memberof Product\r\n */\r\n package_dimensions?: ProductPackageDimensions;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof Product\r\n */\r\n shippable?: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Product\r\n */\r\n statement_descriptor?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Product\r\n */\r\n type?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Product\r\n */\r\n unit_label?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Product\r\n */\r\n updated: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof Product\r\n */\r\n url?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface ProductAllOf\r\n */\r\nexport interface ProductAllOf {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ProductAllOf\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ProductAllOf\r\n */\r\n object?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof ProductAllOf\r\n */\r\n active: boolean;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof ProductAllOf\r\n */\r\n attributes?: Array;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ProductAllOf\r\n */\r\n caption?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ProductAllOf\r\n */\r\n created: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof ProductAllOf\r\n */\r\n deactivate_on?: Array;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof ProductAllOf\r\n */\r\n deleted?: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ProductAllOf\r\n */\r\n description?: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof ProductAllOf\r\n */\r\n images?: Array;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof ProductAllOf\r\n */\r\n livemode: boolean;\r\n /**\r\n * \r\n * @type {{ [key: string]: string; }}\r\n * @memberof ProductAllOf\r\n */\r\n metadata?: { [key: string]: string; };\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ProductAllOf\r\n */\r\n name?: string;\r\n /**\r\n * \r\n * @type {ProductPackageDimensions}\r\n * @memberof ProductAllOf\r\n */\r\n package_dimensions?: ProductPackageDimensions;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof ProductAllOf\r\n */\r\n shippable?: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ProductAllOf\r\n */\r\n statement_descriptor?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ProductAllOf\r\n */\r\n type?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ProductAllOf\r\n */\r\n unit_label?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ProductAllOf\r\n */\r\n updated: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ProductAllOf\r\n */\r\n url?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface ProductPackageDimensions\r\n */\r\nexport interface ProductPackageDimensions {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof ProductPackageDimensions\r\n */\r\n height: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof ProductPackageDimensions\r\n */\r\n length: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof ProductPackageDimensions\r\n */\r\n weight: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof ProductPackageDimensions\r\n */\r\n width: number;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface ProductPackageDimensionsAllOf\r\n */\r\nexport interface ProductPackageDimensionsAllOf {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof ProductPackageDimensionsAllOf\r\n */\r\n height: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof ProductPackageDimensionsAllOf\r\n */\r\n length: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof ProductPackageDimensionsAllOf\r\n */\r\n weight: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof ProductPackageDimensionsAllOf\r\n */\r\n width: number;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface ResultsDTO\r\n */\r\nexport interface ResultsDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ResultsDTO\r\n */\r\n iterationId?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof ResultsDTO\r\n */\r\n startDate: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof ResultsDTO\r\n */\r\n numberOfParticipants: number;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof ResultsDTO\r\n */\r\n tests?: Array;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof ResultsDTO\r\n */\r\n courses?: Array;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof ResultsDTO\r\n */\r\n testConfiguration?: Array;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof ResultsDTO\r\n */\r\n courseConfiguration?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface StripeEntityOfPrice\r\n */\r\nexport interface StripeEntityOfPrice {\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface StripeEntityOfPriceRecurring\r\n */\r\nexport interface StripeEntityOfPriceRecurring {\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface StripeEntityOfPriceTier\r\n */\r\nexport interface StripeEntityOfPriceTier {\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface StripeEntityOfPriceTransformQuantity\r\n */\r\nexport interface StripeEntityOfPriceTransformQuantity {\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface StripeEntityOfProduct\r\n */\r\nexport interface StripeEntityOfProduct {\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface StripeEntityOfProductPackageDimensions\r\n */\r\nexport interface StripeEntityOfProductPackageDimensions {\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface StripeEntityOfStripeListOfPrice\r\n */\r\nexport interface StripeEntityOfStripeListOfPrice {\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface StripeEntityOfStripeListOfProduct\r\n */\r\nexport interface StripeEntityOfStripeListOfProduct {\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface StripeListOfPrice\r\n */\r\nexport interface StripeListOfPrice {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof StripeListOfPrice\r\n */\r\n object?: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof StripeListOfPrice\r\n */\r\n data?: Array;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof StripeListOfPrice\r\n */\r\n has_more: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof StripeListOfPrice\r\n */\r\n url?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface StripeListOfPriceAllOf\r\n */\r\nexport interface StripeListOfPriceAllOf {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof StripeListOfPriceAllOf\r\n */\r\n object?: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof StripeListOfPriceAllOf\r\n */\r\n data?: Array;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof StripeListOfPriceAllOf\r\n */\r\n has_more: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof StripeListOfPriceAllOf\r\n */\r\n url?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface StripeListOfProduct\r\n */\r\nexport interface StripeListOfProduct {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof StripeListOfProduct\r\n */\r\n object?: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof StripeListOfProduct\r\n */\r\n data?: Array;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof StripeListOfProduct\r\n */\r\n has_more: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof StripeListOfProduct\r\n */\r\n url?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface StripeListOfProductAllOf\r\n */\r\nexport interface StripeListOfProductAllOf {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof StripeListOfProductAllOf\r\n */\r\n object?: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof StripeListOfProductAllOf\r\n */\r\n data?: Array;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof StripeListOfProductAllOf\r\n */\r\n has_more: boolean;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof StripeListOfProductAllOf\r\n */\r\n url?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface SubscriptionDTO\r\n */\r\nexport interface SubscriptionDTO {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof SubscriptionDTO\r\n */\r\n quantity: number;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof SubscriptionDTO\r\n */\r\n priceID?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof SubscriptionDTO\r\n */\r\n startDate: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof SubscriptionDTO\r\n */\r\n endDate: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface SupportDTO\r\n */\r\nexport interface SupportDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof SupportDTO\r\n */\r\n name?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof SupportDTO\r\n */\r\n phoneNumber?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof SupportDTO\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof SupportDTO\r\n */\r\n email?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof SupportDTO\r\n */\r\n comment?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface TestConfigurationDTO\r\n */\r\nexport interface TestConfigurationDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TestConfigurationDTO\r\n */\r\n categoryId?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TestConfigurationDTO\r\n */\r\n id?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface TestResultDTO\r\n */\r\nexport interface TestResultDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TestResultDTO\r\n */\r\n token?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TestResultDTO\r\n */\r\n testId?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TestResultDTO\r\n */\r\n groupId?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TestResultDTO\r\n */\r\n participantId?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TestResultDTO\r\n */\r\n scheduleId?: string;\r\n /**\r\n * \r\n * @type {ImplicitBiasInterpretation}\r\n * @memberof TestResultDTO\r\n */\r\n interpretation: ImplicitBiasInterpretation;\r\n /**\r\n * \r\n * @type {ImplicitBiasInterpretationDirection}\r\n * @memberof TestResultDTO\r\n */\r\n direction: ImplicitBiasInterpretationDirection;\r\n /**\r\n * \r\n * @type {TestResultDetailsDTO}\r\n * @memberof TestResultDTO\r\n */\r\n testResultDetails?: TestResultDetailsDTO;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof TestResultDTO\r\n */\r\n rawInputs?: Array;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TestResultDTO\r\n */\r\n implicitBiasSurveyInputs?: string;\r\n /**\r\n * \r\n * @type {boolean}\r\n * @memberof TestResultDTO\r\n */\r\n anonymousUser: boolean;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface TestResultDetailsDTO\r\n */\r\nexport interface TestResultDetailsDTO {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof TestResultDetailsDTO\r\n */\r\n score: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof TestResultDetailsDTO\r\n */\r\n highResponseTimeCount: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof TestResultDetailsDTO\r\n */\r\n lowResponseTimePercentage: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof TestResultDetailsDTO\r\n */\r\n practiceSTD: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof TestResultDetailsDTO\r\n */\r\n testSTD: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof TestResultDetailsDTO\r\n */\r\n practiceMeanDiff: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof TestResultDetailsDTO\r\n */\r\n testMeanDiff: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof TestResultDetailsDTO\r\n */\r\n practiceEffectSize: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof TestResultDetailsDTO\r\n */\r\n testEffectSize: number;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface TestScheduleDTO\r\n */\r\nexport interface TestScheduleDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TestScheduleDTO\r\n */\r\n id?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TestScheduleDTO\r\n */\r\n testUrl?: string;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface TestSummaryDTO\r\n */\r\nexport interface TestSummaryDTO {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof TestSummaryDTO\r\n */\r\n total: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof TestSummaryDTO\r\n */\r\n averageScore: number;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof TestSummaryDTO\r\n */\r\n interpretationItems?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface TestSummaryItemDTO\r\n */\r\nexport interface TestSummaryItemDTO {\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof TestSummaryItemDTO\r\n */\r\n count: number;\r\n /**\r\n * \r\n * @type {ImplicitBiasInterpretation}\r\n * @memberof TestSummaryItemDTO\r\n */\r\n interpretation: ImplicitBiasInterpretation;\r\n /**\r\n * \r\n * @type {ImplicitBiasInterpretationDirection}\r\n * @memberof TestSummaryItemDTO\r\n */\r\n direction: ImplicitBiasInterpretationDirection;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof TestSummaryItemDTO\r\n */\r\n averageScore: number;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface TestTakerScheduleDTO\r\n */\r\nexport interface TestTakerScheduleDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TestTakerScheduleDTO\r\n */\r\n groupId?: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TestTakerScheduleDTO\r\n */\r\n scheduleId?: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof TestTakerScheduleDTO\r\n */\r\n testConfigurations?: Array;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof TestTakerScheduleDTO\r\n */\r\n courseConfigurations?: Array;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof TestTakerScheduleDTO\r\n */\r\n participantId?: string;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof TestTakerScheduleDTO\r\n */\r\n courseResults?: Array;\r\n /**\r\n * \r\n * @type {Array}\r\n * @memberof TestTakerScheduleDTO\r\n */\r\n testResults?: Array;\r\n}\r\n/**\r\n * \r\n * @export\r\n * @interface UpgradeSubscriptionReqDTO\r\n */\r\nexport interface UpgradeSubscriptionReqDTO {\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpgradeSubscriptionReqDTO\r\n */\r\n customerId: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpgradeSubscriptionReqDTO\r\n */\r\n subscriptionId: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpgradeSubscriptionReqDTO\r\n */\r\n priceId: string;\r\n /**\r\n * \r\n * @type {string}\r\n * @memberof UpgradeSubscriptionReqDTO\r\n */\r\n recurringPriceId: string;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof UpgradeSubscriptionReqDTO\r\n */\r\n quantity: number;\r\n /**\r\n * \r\n * @type {number}\r\n * @memberof UpgradeSubscriptionReqDTO\r\n */\r\n quantityAdded: number;\r\n}\r\n\r\n/**\r\n * GroupApi - axios parameter creator\r\n * @export\r\n */\r\nexport const GroupApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {GroupDTO} groupDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n groupAddGroup: async (groupDTO: GroupDTO, options: any = {}): Promise => {\r\n // verify required parameter 'groupDTO' is not null or undefined\r\n assertParamExists('groupAddGroup', 'groupDTO', groupDTO)\r\n const localVarPath = `/Group`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(groupDTO, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} groupId \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n groupDeleteGroup: async (groupId: string, options: any = {}): Promise => {\r\n // verify required parameter 'groupId' is not null or undefined\r\n assertParamExists('groupDeleteGroup', 'groupId', groupId)\r\n const localVarPath = `/Group`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(groupId, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n groupGetGroup: async (id: string, options: any = {}): Promise => {\r\n // verify required parameter 'id' is not null or undefined\r\n assertParamExists('groupGetGroup', 'id', id)\r\n const localVarPath = `/Group/{id}`\r\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n groupGetGroups: async (options: any = {}): Promise => {\r\n const localVarPath = `/Group/groups`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n groupGetGroupsWithResults: async (options: any = {}): Promise => {\r\n const localVarPath = `/Group/groups/results`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} groupId \r\n * @param {GroupOverviewDTO} groupOverviewDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n groupUpdateGroupOverview: async (groupId: string, groupOverviewDTO: GroupOverviewDTO, options: any = {}): Promise => {\r\n // verify required parameter 'groupId' is not null or undefined\r\n assertParamExists('groupUpdateGroupOverview', 'groupId', groupId)\r\n // verify required parameter 'groupOverviewDTO' is not null or undefined\r\n assertParamExists('groupUpdateGroupOverview', 'groupOverviewDTO', groupOverviewDTO)\r\n const localVarPath = `/Group/overview/{groupId}`\r\n .replace(`{${\"groupId\"}}`, encodeURIComponent(String(groupId)));\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(groupOverviewDTO, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * GroupApi - functional programming interface\r\n * @export\r\n */\r\nexport const GroupApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = GroupApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {GroupDTO} groupDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async groupAddGroup(groupDTO: GroupDTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.groupAddGroup(groupDTO, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} groupId \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async groupDeleteGroup(groupId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.groupDeleteGroup(groupId, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async groupGetGroup(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.groupGetGroup(id, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async groupGetGroups(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.groupGetGroups(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async groupGetGroupsWithResults(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.groupGetGroupsWithResults(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} groupId \r\n * @param {GroupOverviewDTO} groupOverviewDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async groupUpdateGroupOverview(groupId: string, groupOverviewDTO: GroupOverviewDTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.groupUpdateGroupOverview(groupId, groupOverviewDTO, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * GroupApi - factory interface\r\n * @export\r\n */\r\nexport const GroupApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = GroupApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {GroupDTO} groupDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n groupAddGroup(groupDTO: GroupDTO, options?: any): AxiosPromise {\r\n return localVarFp.groupAddGroup(groupDTO, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} groupId \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n groupDeleteGroup(groupId: string, options?: any): AxiosPromise {\r\n return localVarFp.groupDeleteGroup(groupId, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n groupGetGroup(id: string, options?: any): AxiosPromise {\r\n return localVarFp.groupGetGroup(id, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n groupGetGroups(options?: any): AxiosPromise> {\r\n return localVarFp.groupGetGroups(options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n groupGetGroupsWithResults(options?: any): AxiosPromise> {\r\n return localVarFp.groupGetGroupsWithResults(options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} groupId \r\n * @param {GroupOverviewDTO} groupOverviewDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n groupUpdateGroupOverview(groupId: string, groupOverviewDTO: GroupOverviewDTO, options?: any): AxiosPromise {\r\n return localVarFp.groupUpdateGroupOverview(groupId, groupOverviewDTO, options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * GroupApi - object-oriented interface\r\n * @export\r\n * @class GroupApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class GroupApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {GroupDTO} groupDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof GroupApi\r\n */\r\n public groupAddGroup(groupDTO: GroupDTO, options?: any) {\r\n return GroupApiFp(this.configuration).groupAddGroup(groupDTO, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} groupId \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof GroupApi\r\n */\r\n public groupDeleteGroup(groupId: string, options?: any) {\r\n return GroupApiFp(this.configuration).groupDeleteGroup(groupId, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof GroupApi\r\n */\r\n public groupGetGroup(id: string, options?: any) {\r\n return GroupApiFp(this.configuration).groupGetGroup(id, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof GroupApi\r\n */\r\n public groupGetGroups(options?: any) {\r\n return GroupApiFp(this.configuration).groupGetGroups(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof GroupApi\r\n */\r\n public groupGetGroupsWithResults(options?: any) {\r\n return GroupApiFp(this.configuration).groupGetGroupsWithResults(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} groupId \r\n * @param {GroupOverviewDTO} groupOverviewDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof GroupApi\r\n */\r\n public groupUpdateGroupOverview(groupId: string, groupOverviewDTO: GroupOverviewDTO, options?: any) {\r\n return GroupApiFp(this.configuration).groupUpdateGroupOverview(groupId, groupOverviewDTO, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n\r\n\r\n/**\r\n * ParticipantApi - axios parameter creator\r\n * @export\r\n */\r\nexport const ParticipantApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {ParticipantsDTO} participantDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n participantAddParticipants: async (participantDTO: ParticipantsDTO, options: any = {}): Promise => {\r\n // verify required parameter 'participantDTO' is not null or undefined\r\n assertParamExists('participantAddParticipants', 'participantDTO', participantDTO)\r\n const localVarPath = `/Participant`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(participantDTO, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {ParticipantsDTO} participantDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n participantUpdateParticipants: async (participantDTO: ParticipantsDTO, options: any = {}): Promise => {\r\n // verify required parameter 'participantDTO' is not null or undefined\r\n assertParamExists('participantUpdateParticipants', 'participantDTO', participantDTO)\r\n const localVarPath = `/Participant`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(participantDTO, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * ParticipantApi - functional programming interface\r\n * @export\r\n */\r\nexport const ParticipantApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = ParticipantApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {ParticipantsDTO} participantDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async participantAddParticipants(participantDTO: ParticipantsDTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.participantAddParticipants(participantDTO, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {ParticipantsDTO} participantDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async participantUpdateParticipants(participantDTO: ParticipantsDTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.participantUpdateParticipants(participantDTO, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * ParticipantApi - factory interface\r\n * @export\r\n */\r\nexport const ParticipantApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = ParticipantApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {ParticipantsDTO} participantDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n participantAddParticipants(participantDTO: ParticipantsDTO, options?: any): AxiosPromise {\r\n return localVarFp.participantAddParticipants(participantDTO, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {ParticipantsDTO} participantDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n participantUpdateParticipants(participantDTO: ParticipantsDTO, options?: any): AxiosPromise {\r\n return localVarFp.participantUpdateParticipants(participantDTO, options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * ParticipantApi - object-oriented interface\r\n * @export\r\n * @class ParticipantApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class ParticipantApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {ParticipantsDTO} participantDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof ParticipantApi\r\n */\r\n public participantAddParticipants(participantDTO: ParticipantsDTO, options?: any) {\r\n return ParticipantApiFp(this.configuration).participantAddParticipants(participantDTO, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {ParticipantsDTO} participantDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof ParticipantApi\r\n */\r\n public participantUpdateParticipants(participantDTO: ParticipantsDTO, options?: any) {\r\n return ParticipantApiFp(this.configuration).participantUpdateParticipants(participantDTO, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n\r\n\r\n/**\r\n * PaymentsApi - axios parameter creator\r\n * @export\r\n */\r\nexport const PaymentsApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {CreateCheckoutSessionRequest} req \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsCheckoutFreeTier: async (req: CreateCheckoutSessionRequest, options: any = {}): Promise => {\r\n // verify required parameter 'req' is not null or undefined\r\n assertParamExists('paymentsCheckoutFreeTier', 'req', req)\r\n const localVarPath = `/Payments/checkout-free`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(req, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {CreateCheckoutSessionRequest} req \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsCreateCheckoutSession: async (req: CreateCheckoutSessionRequest, options: any = {}): Promise => {\r\n // verify required parameter 'req' is not null or undefined\r\n assertParamExists('paymentsCreateCheckoutSession', 'req', req)\r\n const localVarPath = `/Payments/create-checkout-session`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(req, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsCustomerPortal: async (options: any = {}): Promise => {\r\n const localVarPath = `/Payments/create-customer-portal-session`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsErrorCheckout: async (sessionId?: string, options: any = {}): Promise => {\r\n const localVarPath = `/Payments/checkout-error`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n if (sessionId !== undefined) {\r\n localVarQueryParameter['session_id'] = sessionId;\r\n }\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsErrorUpdateCheckout: async (sessionId?: string, options: any = {}): Promise => {\r\n const localVarPath = `/Payments/update-checkout-error`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n if (sessionId !== undefined) {\r\n localVarQueryParameter['session_id'] = sessionId;\r\n }\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsFinalizeCheckout: async (sessionId?: string, options: any = {}): Promise => {\r\n const localVarPath = `/Payments/checkout-finalize`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n if (sessionId !== undefined) {\r\n localVarQueryParameter['session_id'] = sessionId;\r\n }\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsFinalizeUpdateCheckout: async (sessionId?: string, options: any = {}): Promise => {\r\n const localVarPath = `/Payments/update-checkout-finalize`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n if (sessionId !== undefined) {\r\n localVarQueryParameter['session_id'] = sessionId;\r\n }\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {DowngradeSubscriptionRequest} request \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsSubscriptionDowngradeStart: async (request: DowngradeSubscriptionRequest, options: any = {}): Promise => {\r\n // verify required parameter 'request' is not null or undefined\r\n assertParamExists('paymentsSubscriptionDowngradeStart', 'request', request)\r\n const localVarPath = `/Payments/subscription-downgrade-start`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {UpgradeSubscriptionReqDTO} req \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsUpgradeSubscription: async (req: UpgradeSubscriptionReqDTO, options: any = {}): Promise => {\r\n // verify required parameter 'req' is not null or undefined\r\n assertParamExists('paymentsUpgradeSubscription', 'req', req)\r\n const localVarPath = `/Payments/upgrade-subscription`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(req, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * PaymentsApi - functional programming interface\r\n * @export\r\n */\r\nexport const PaymentsApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = PaymentsApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {CreateCheckoutSessionRequest} req \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async paymentsCheckoutFreeTier(req: CreateCheckoutSessionRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.paymentsCheckoutFreeTier(req, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {CreateCheckoutSessionRequest} req \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async paymentsCreateCheckoutSession(req: CreateCheckoutSessionRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.paymentsCreateCheckoutSession(req, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async paymentsCustomerPortal(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.paymentsCustomerPortal(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async paymentsErrorCheckout(sessionId?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.paymentsErrorCheckout(sessionId, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async paymentsErrorUpdateCheckout(sessionId?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.paymentsErrorUpdateCheckout(sessionId, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async paymentsFinalizeCheckout(sessionId?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.paymentsFinalizeCheckout(sessionId, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async paymentsFinalizeUpdateCheckout(sessionId?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.paymentsFinalizeUpdateCheckout(sessionId, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {DowngradeSubscriptionRequest} request \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async paymentsSubscriptionDowngradeStart(request: DowngradeSubscriptionRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.paymentsSubscriptionDowngradeStart(request, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {UpgradeSubscriptionReqDTO} req \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async paymentsUpgradeSubscription(req: UpgradeSubscriptionReqDTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.paymentsUpgradeSubscription(req, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * PaymentsApi - factory interface\r\n * @export\r\n */\r\nexport const PaymentsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = PaymentsApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {CreateCheckoutSessionRequest} req \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsCheckoutFreeTier(req: CreateCheckoutSessionRequest, options?: any): AxiosPromise {\r\n return localVarFp.paymentsCheckoutFreeTier(req, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {CreateCheckoutSessionRequest} req \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsCreateCheckoutSession(req: CreateCheckoutSessionRequest, options?: any): AxiosPromise {\r\n return localVarFp.paymentsCreateCheckoutSession(req, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsCustomerPortal(options?: any): AxiosPromise {\r\n return localVarFp.paymentsCustomerPortal(options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsErrorCheckout(sessionId?: string, options?: any): AxiosPromise {\r\n return localVarFp.paymentsErrorCheckout(sessionId, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsErrorUpdateCheckout(sessionId?: string, options?: any): AxiosPromise {\r\n return localVarFp.paymentsErrorUpdateCheckout(sessionId, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsFinalizeCheckout(sessionId?: string, options?: any): AxiosPromise {\r\n return localVarFp.paymentsFinalizeCheckout(sessionId, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsFinalizeUpdateCheckout(sessionId?: string, options?: any): AxiosPromise {\r\n return localVarFp.paymentsFinalizeUpdateCheckout(sessionId, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {DowngradeSubscriptionRequest} request \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsSubscriptionDowngradeStart(request: DowngradeSubscriptionRequest, options?: any): AxiosPromise {\r\n return localVarFp.paymentsSubscriptionDowngradeStart(request, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {UpgradeSubscriptionReqDTO} req \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n paymentsUpgradeSubscription(req: UpgradeSubscriptionReqDTO, options?: any): AxiosPromise {\r\n return localVarFp.paymentsUpgradeSubscription(req, options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * PaymentsApi - object-oriented interface\r\n * @export\r\n * @class PaymentsApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class PaymentsApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {CreateCheckoutSessionRequest} req \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PaymentsApi\r\n */\r\n public paymentsCheckoutFreeTier(req: CreateCheckoutSessionRequest, options?: any) {\r\n return PaymentsApiFp(this.configuration).paymentsCheckoutFreeTier(req, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {CreateCheckoutSessionRequest} req \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PaymentsApi\r\n */\r\n public paymentsCreateCheckoutSession(req: CreateCheckoutSessionRequest, options?: any) {\r\n return PaymentsApiFp(this.configuration).paymentsCreateCheckoutSession(req, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PaymentsApi\r\n */\r\n public paymentsCustomerPortal(options?: any) {\r\n return PaymentsApiFp(this.configuration).paymentsCustomerPortal(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PaymentsApi\r\n */\r\n public paymentsErrorCheckout(sessionId?: string, options?: any) {\r\n return PaymentsApiFp(this.configuration).paymentsErrorCheckout(sessionId, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PaymentsApi\r\n */\r\n public paymentsErrorUpdateCheckout(sessionId?: string, options?: any) {\r\n return PaymentsApiFp(this.configuration).paymentsErrorUpdateCheckout(sessionId, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PaymentsApi\r\n */\r\n public paymentsFinalizeCheckout(sessionId?: string, options?: any) {\r\n return PaymentsApiFp(this.configuration).paymentsFinalizeCheckout(sessionId, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} [sessionId] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PaymentsApi\r\n */\r\n public paymentsFinalizeUpdateCheckout(sessionId?: string, options?: any) {\r\n return PaymentsApiFp(this.configuration).paymentsFinalizeUpdateCheckout(sessionId, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {DowngradeSubscriptionRequest} request \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PaymentsApi\r\n */\r\n public paymentsSubscriptionDowngradeStart(request: DowngradeSubscriptionRequest, options?: any) {\r\n return PaymentsApiFp(this.configuration).paymentsSubscriptionDowngradeStart(request, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {UpgradeSubscriptionReqDTO} req \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PaymentsApi\r\n */\r\n public paymentsUpgradeSubscription(req: UpgradeSubscriptionReqDTO, options?: any) {\r\n return PaymentsApiFp(this.configuration).paymentsUpgradeSubscription(req, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n\r\n\r\n/**\r\n * PingApi - axios parameter creator\r\n * @export\r\n */\r\nexport const PingApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n pingGRPC: async (options: any = {}): Promise => {\r\n const localVarPath = `/Ping/GRPC`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n pingIndex: async (options: any = {}): Promise => {\r\n const localVarPath = `/Ping`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * PingApi - functional programming interface\r\n * @export\r\n */\r\nexport const PingApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = PingApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async pingGRPC(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.pingGRPC(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async pingIndex(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.pingIndex(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * PingApi - factory interface\r\n * @export\r\n */\r\nexport const PingApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = PingApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n pingGRPC(options?: any): AxiosPromise {\r\n return localVarFp.pingGRPC(options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n pingIndex(options?: any): AxiosPromise {\r\n return localVarFp.pingIndex(options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * PingApi - object-oriented interface\r\n * @export\r\n * @class PingApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class PingApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PingApi\r\n */\r\n public pingGRPC(options?: any) {\r\n return PingApiFp(this.configuration).pingGRPC(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PingApi\r\n */\r\n public pingIndex(options?: any) {\r\n return PingApiFp(this.configuration).pingIndex(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n\r\n\r\n/**\r\n * PlanApi - axios parameter creator\r\n * @export\r\n */\r\nexport const PlanApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n planGetPlan: async (id: string, options: any = {}): Promise => {\r\n // verify required parameter 'id' is not null or undefined\r\n assertParamExists('planGetPlan', 'id', id)\r\n const localVarPath = `/plans/{id}`\r\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * PlanApi - functional programming interface\r\n * @export\r\n */\r\nexport const PlanApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = PlanApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async planGetPlan(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.planGetPlan(id, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * PlanApi - factory interface\r\n * @export\r\n */\r\nexport const PlanApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = PlanApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n planGetPlan(id: string, options?: any): AxiosPromise {\r\n return localVarFp.planGetPlan(id, options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * PlanApi - object-oriented interface\r\n * @export\r\n * @class PlanApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class PlanApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PlanApi\r\n */\r\n public planGetPlan(id: string, options?: any) {\r\n return PlanApiFp(this.configuration).planGetPlan(id, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n\r\n\r\n/**\r\n * PlanConfigurationApi - axios parameter creator\r\n * @export\r\n */\r\nexport const PlanConfigurationApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {PlanConfigurationDTO} planConfigurationDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n planConfigurationAddPlanConfiguration: async (planConfigurationDTO: PlanConfigurationDTO, options: any = {}): Promise => {\r\n // verify required parameter 'planConfigurationDTO' is not null or undefined\r\n assertParamExists('planConfigurationAddPlanConfiguration', 'planConfigurationDTO', planConfigurationDTO)\r\n const localVarPath = `/PlanConfiguration`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(planConfigurationDTO, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n planConfigurationGetPlanConfiguration: async (id: string, options: any = {}): Promise => {\r\n // verify required parameter 'id' is not null or undefined\r\n assertParamExists('planConfigurationGetPlanConfiguration', 'id', id)\r\n const localVarPath = `/PlanConfiguration/{id}`\r\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} planConfigurationId \r\n * @param {PlanConfigurationDTO} updatePlanConfigurationDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n planConfigurationUpdatePlanConfiguration: async (planConfigurationId: string, updatePlanConfigurationDTO: PlanConfigurationDTO, options: any = {}): Promise => {\r\n // verify required parameter 'planConfigurationId' is not null or undefined\r\n assertParamExists('planConfigurationUpdatePlanConfiguration', 'planConfigurationId', planConfigurationId)\r\n // verify required parameter 'updatePlanConfigurationDTO' is not null or undefined\r\n assertParamExists('planConfigurationUpdatePlanConfiguration', 'updatePlanConfigurationDTO', updatePlanConfigurationDTO)\r\n const localVarPath = `/PlanConfiguration/{planConfigurationId}`\r\n .replace(`{${\"planConfigurationId\"}}`, encodeURIComponent(String(planConfigurationId)));\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(updatePlanConfigurationDTO, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * PlanConfigurationApi - functional programming interface\r\n * @export\r\n */\r\nexport const PlanConfigurationApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = PlanConfigurationApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {PlanConfigurationDTO} planConfigurationDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async planConfigurationAddPlanConfiguration(planConfigurationDTO: PlanConfigurationDTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.planConfigurationAddPlanConfiguration(planConfigurationDTO, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async planConfigurationGetPlanConfiguration(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.planConfigurationGetPlanConfiguration(id, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} planConfigurationId \r\n * @param {PlanConfigurationDTO} updatePlanConfigurationDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async planConfigurationUpdatePlanConfiguration(planConfigurationId: string, updatePlanConfigurationDTO: PlanConfigurationDTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.planConfigurationUpdatePlanConfiguration(planConfigurationId, updatePlanConfigurationDTO, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * PlanConfigurationApi - factory interface\r\n * @export\r\n */\r\nexport const PlanConfigurationApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = PlanConfigurationApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {PlanConfigurationDTO} planConfigurationDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n planConfigurationAddPlanConfiguration(planConfigurationDTO: PlanConfigurationDTO, options?: any): AxiosPromise {\r\n return localVarFp.planConfigurationAddPlanConfiguration(planConfigurationDTO, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n planConfigurationGetPlanConfiguration(id: string, options?: any): AxiosPromise {\r\n return localVarFp.planConfigurationGetPlanConfiguration(id, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} planConfigurationId \r\n * @param {PlanConfigurationDTO} updatePlanConfigurationDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n planConfigurationUpdatePlanConfiguration(planConfigurationId: string, updatePlanConfigurationDTO: PlanConfigurationDTO, options?: any): AxiosPromise {\r\n return localVarFp.planConfigurationUpdatePlanConfiguration(planConfigurationId, updatePlanConfigurationDTO, options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * PlanConfigurationApi - object-oriented interface\r\n * @export\r\n * @class PlanConfigurationApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class PlanConfigurationApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {PlanConfigurationDTO} planConfigurationDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PlanConfigurationApi\r\n */\r\n public planConfigurationAddPlanConfiguration(planConfigurationDTO: PlanConfigurationDTO, options?: any) {\r\n return PlanConfigurationApiFp(this.configuration).planConfigurationAddPlanConfiguration(planConfigurationDTO, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PlanConfigurationApi\r\n */\r\n public planConfigurationGetPlanConfiguration(id: string, options?: any) {\r\n return PlanConfigurationApiFp(this.configuration).planConfigurationGetPlanConfiguration(id, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} planConfigurationId \r\n * @param {PlanConfigurationDTO} updatePlanConfigurationDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof PlanConfigurationApi\r\n */\r\n public planConfigurationUpdatePlanConfiguration(planConfigurationId: string, updatePlanConfigurationDTO: PlanConfigurationDTO, options?: any) {\r\n return PlanConfigurationApiFp(this.configuration).planConfigurationUpdatePlanConfiguration(planConfigurationId, updatePlanConfigurationDTO, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n\r\n\r\n/**\r\n * ProductApi - axios parameter creator\r\n * @export\r\n */\r\nexport const ProductApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n productGetAllPlans: async (options: any = {}): Promise => {\r\n const localVarPath = `/Product/plans`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n productGetAllPrices: async (options: any = {}): Promise => {\r\n const localVarPath = `/Product/prices`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n productGetAllProducts: async (options: any = {}): Promise => {\r\n const localVarPath = `/Product/products`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n productGetPriceById: async (id: string, options: any = {}): Promise => {\r\n // verify required parameter 'id' is not null or undefined\r\n assertParamExists('productGetPriceById', 'id', id)\r\n const localVarPath = `/Product/prices/{id}`\r\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n productGetProductById: async (id: string, options: any = {}): Promise => {\r\n // verify required parameter 'id' is not null or undefined\r\n assertParamExists('productGetProductById', 'id', id)\r\n const localVarPath = `/Product/products/{id}`\r\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * ProductApi - functional programming interface\r\n * @export\r\n */\r\nexport const ProductApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = ProductApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async productGetAllPlans(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.productGetAllPlans(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async productGetAllPrices(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.productGetAllPrices(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async productGetAllProducts(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.productGetAllProducts(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async productGetPriceById(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.productGetPriceById(id, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async productGetProductById(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.productGetProductById(id, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * ProductApi - factory interface\r\n * @export\r\n */\r\nexport const ProductApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = ProductApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n productGetAllPlans(options?: any): AxiosPromise> {\r\n return localVarFp.productGetAllPlans(options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n productGetAllPrices(options?: any): AxiosPromise {\r\n return localVarFp.productGetAllPrices(options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n productGetAllProducts(options?: any): AxiosPromise {\r\n return localVarFp.productGetAllProducts(options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n productGetPriceById(id: string, options?: any): AxiosPromise {\r\n return localVarFp.productGetPriceById(id, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n productGetProductById(id: string, options?: any): AxiosPromise {\r\n return localVarFp.productGetProductById(id, options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * ProductApi - object-oriented interface\r\n * @export\r\n * @class ProductApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class ProductApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof ProductApi\r\n */\r\n public productGetAllPlans(options?: any) {\r\n return ProductApiFp(this.configuration).productGetAllPlans(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof ProductApi\r\n */\r\n public productGetAllPrices(options?: any) {\r\n return ProductApiFp(this.configuration).productGetAllPrices(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof ProductApi\r\n */\r\n public productGetAllProducts(options?: any) {\r\n return ProductApiFp(this.configuration).productGetAllProducts(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof ProductApi\r\n */\r\n public productGetPriceById(id: string, options?: any) {\r\n return ProductApiFp(this.configuration).productGetPriceById(id, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} id \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof ProductApi\r\n */\r\n public productGetProductById(id: string, options?: any) {\r\n return ProductApiFp(this.configuration).productGetProductById(id, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n\r\n\r\n/**\r\n * SupportApi - axios parameter creator\r\n * @export\r\n */\r\nexport const SupportApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {SupportDTO} supportRequest \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n supportPost: async (supportRequest: SupportDTO, options: any = {}): Promise => {\r\n // verify required parameter 'supportRequest' is not null or undefined\r\n assertParamExists('supportPost', 'supportRequest', supportRequest)\r\n const localVarPath = `/Support`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(supportRequest, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * SupportApi - functional programming interface\r\n * @export\r\n */\r\nexport const SupportApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = SupportApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {SupportDTO} supportRequest \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async supportPost(supportRequest: SupportDTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.supportPost(supportRequest, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * SupportApi - factory interface\r\n * @export\r\n */\r\nexport const SupportApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = SupportApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {SupportDTO} supportRequest \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n supportPost(supportRequest: SupportDTO, options?: any): AxiosPromise {\r\n return localVarFp.supportPost(supportRequest, options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * SupportApi - object-oriented interface\r\n * @export\r\n * @class SupportApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class SupportApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {SupportDTO} supportRequest \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof SupportApi\r\n */\r\n public supportPost(supportRequest: SupportDTO, options?: any) {\r\n return SupportApiFp(this.configuration).supportPost(supportRequest, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n\r\n\r\n/**\r\n * TestTakerApi - axios parameter creator\r\n * @export\r\n */\r\nexport const TestTakerApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {CourseResultDTO} courseResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerAddCourseResults: async (courseResultsDTO: CourseResultDTO, options: any = {}): Promise => {\r\n // verify required parameter 'courseResultsDTO' is not null or undefined\r\n assertParamExists('testTakerAddCourseResults', 'courseResultsDTO', courseResultsDTO)\r\n const localVarPath = `/TestTaker/AddCourseResults`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(courseResultsDTO, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {CourseResultDTO} courseResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerAddPublicCourseResults: async (courseResultsDTO: CourseResultDTO, options: any = {}): Promise => {\r\n // verify required parameter 'courseResultsDTO' is not null or undefined\r\n assertParamExists('testTakerAddPublicCourseResults', 'courseResultsDTO', courseResultsDTO)\r\n const localVarPath = `/TestTaker/AddPublicCourseResults`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(courseResultsDTO, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {TestResultDTO} testResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerAddPublicTestResults: async (testResultsDTO: TestResultDTO, options: any = {}): Promise => {\r\n // verify required parameter 'testResultsDTO' is not null or undefined\r\n assertParamExists('testTakerAddPublicTestResults', 'testResultsDTO', testResultsDTO)\r\n const localVarPath = `/TestTaker/AddPublicTestResults`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(testResultsDTO, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {TestResultDTO} testResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerAddTestResults: async (testResultsDTO: TestResultDTO, options: any = {}): Promise => {\r\n // verify required parameter 'testResultsDTO' is not null or undefined\r\n assertParamExists('testTakerAddTestResults', 'testResultsDTO', testResultsDTO)\r\n const localVarPath = `/TestTaker/AddTestResults`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(testResultsDTO, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} token \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerGetGroupDetails: async (token: string, options: any = {}): Promise => {\r\n // verify required parameter 'token' is not null or undefined\r\n assertParamExists('testTakerGetGroupDetails', 'token', token)\r\n const localVarPath = `/TestTaker/GetGroupDetails`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(token, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} scheduleId \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerGetGroupDetailsBySchedule: async (scheduleId: string, options: any = {}): Promise => {\r\n // verify required parameter 'scheduleId' is not null or undefined\r\n assertParamExists('testTakerGetGroupDetailsBySchedule', 'scheduleId', scheduleId)\r\n const localVarPath = `/TestTaker/GetGroupDetailsBySchedule`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(scheduleId, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerGetSummary: async (options: any = {}): Promise => {\r\n const localVarPath = `/TestTaker/GetSummary`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * TestTakerApi - functional programming interface\r\n * @export\r\n */\r\nexport const TestTakerApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = TestTakerApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {CourseResultDTO} courseResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async testTakerAddCourseResults(courseResultsDTO: CourseResultDTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.testTakerAddCourseResults(courseResultsDTO, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {CourseResultDTO} courseResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async testTakerAddPublicCourseResults(courseResultsDTO: CourseResultDTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.testTakerAddPublicCourseResults(courseResultsDTO, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {TestResultDTO} testResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async testTakerAddPublicTestResults(testResultsDTO: TestResultDTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.testTakerAddPublicTestResults(testResultsDTO, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {TestResultDTO} testResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async testTakerAddTestResults(testResultsDTO: TestResultDTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.testTakerAddTestResults(testResultsDTO, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} token \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async testTakerGetGroupDetails(token: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.testTakerGetGroupDetails(token, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} scheduleId \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async testTakerGetGroupDetailsBySchedule(scheduleId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.testTakerGetGroupDetailsBySchedule(scheduleId, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async testTakerGetSummary(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.testTakerGetSummary(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * TestTakerApi - factory interface\r\n * @export\r\n */\r\nexport const TestTakerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = TestTakerApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {CourseResultDTO} courseResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerAddCourseResults(courseResultsDTO: CourseResultDTO, options?: any): AxiosPromise {\r\n return localVarFp.testTakerAddCourseResults(courseResultsDTO, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {CourseResultDTO} courseResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerAddPublicCourseResults(courseResultsDTO: CourseResultDTO, options?: any): AxiosPromise {\r\n return localVarFp.testTakerAddPublicCourseResults(courseResultsDTO, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {TestResultDTO} testResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerAddPublicTestResults(testResultsDTO: TestResultDTO, options?: any): AxiosPromise {\r\n return localVarFp.testTakerAddPublicTestResults(testResultsDTO, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {TestResultDTO} testResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerAddTestResults(testResultsDTO: TestResultDTO, options?: any): AxiosPromise {\r\n return localVarFp.testTakerAddTestResults(testResultsDTO, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} token \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerGetGroupDetails(token: string, options?: any): AxiosPromise {\r\n return localVarFp.testTakerGetGroupDetails(token, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} scheduleId \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerGetGroupDetailsBySchedule(scheduleId: string, options?: any): AxiosPromise {\r\n return localVarFp.testTakerGetGroupDetailsBySchedule(scheduleId, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n testTakerGetSummary(options?: any): AxiosPromise {\r\n return localVarFp.testTakerGetSummary(options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * TestTakerApi - object-oriented interface\r\n * @export\r\n * @class TestTakerApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class TestTakerApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {CourseResultDTO} courseResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof TestTakerApi\r\n */\r\n public testTakerAddCourseResults(courseResultsDTO: CourseResultDTO, options?: any) {\r\n return TestTakerApiFp(this.configuration).testTakerAddCourseResults(courseResultsDTO, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {CourseResultDTO} courseResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof TestTakerApi\r\n */\r\n public testTakerAddPublicCourseResults(courseResultsDTO: CourseResultDTO, options?: any) {\r\n return TestTakerApiFp(this.configuration).testTakerAddPublicCourseResults(courseResultsDTO, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {TestResultDTO} testResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof TestTakerApi\r\n */\r\n public testTakerAddPublicTestResults(testResultsDTO: TestResultDTO, options?: any) {\r\n return TestTakerApiFp(this.configuration).testTakerAddPublicTestResults(testResultsDTO, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {TestResultDTO} testResultsDTO \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof TestTakerApi\r\n */\r\n public testTakerAddTestResults(testResultsDTO: TestResultDTO, options?: any) {\r\n return TestTakerApiFp(this.configuration).testTakerAddTestResults(testResultsDTO, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} token \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof TestTakerApi\r\n */\r\n public testTakerGetGroupDetails(token: string, options?: any) {\r\n return TestTakerApiFp(this.configuration).testTakerGetGroupDetails(token, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} scheduleId \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof TestTakerApi\r\n */\r\n public testTakerGetGroupDetailsBySchedule(scheduleId: string, options?: any) {\r\n return TestTakerApiFp(this.configuration).testTakerGetGroupDetailsBySchedule(scheduleId, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof TestTakerApi\r\n */\r\n public testTakerGetSummary(options?: any) {\r\n return TestTakerApiFp(this.configuration).testTakerGetSummary(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n\r\n\r\n/**\r\n * WebhookApi - axios parameter creator\r\n * @export\r\n */\r\nexport const WebhookApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n webhookSubscriptionUpdate: async (options: any = {}): Promise => {\r\n const localVarPath = `/Webhook/subscription-update`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * WebhookApi - functional programming interface\r\n * @export\r\n */\r\nexport const WebhookApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = WebhookApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async webhookSubscriptionUpdate(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.webhookSubscriptionUpdate(options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * WebhookApi - factory interface\r\n * @export\r\n */\r\nexport const WebhookApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = WebhookApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n webhookSubscriptionUpdate(options?: any): AxiosPromise {\r\n return localVarFp.webhookSubscriptionUpdate(options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * WebhookApi - object-oriented interface\r\n * @export\r\n * @class WebhookApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class WebhookApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof WebhookApi\r\n */\r\n public webhookSubscriptionUpdate(options?: any) {\r\n return WebhookApiFp(this.configuration).webhookSubscriptionUpdate(options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n\r\n\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\n/**\r\n * Bias Proof License API\r\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * \r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nimport { Configuration } from \"./configuration\";\r\n// Some imports not used depending on template conditions\r\n// @ts-ignore\r\nimport globalAxios, { AxiosPromise, AxiosInstance } from 'axios';\r\n\r\nexport const BASE_PATH = \"http://localhost:5000\".replace(/\\/+$/, \"\");\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const COLLECTION_FORMATS = {\r\n csv: \",\",\r\n ssv: \" \",\r\n tsv: \"\\t\",\r\n pipes: \"|\",\r\n};\r\n\r\n/**\r\n *\r\n * @export\r\n * @interface RequestArgs\r\n */\r\nexport interface RequestArgs {\r\n url: string;\r\n options: any;\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n * @class BaseAPI\r\n */\r\nexport class BaseAPI {\r\n protected configuration: Configuration | undefined;\r\n\r\n constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {\r\n if (configuration) {\r\n this.configuration = configuration;\r\n this.basePath = configuration.basePath || this.basePath;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n *\r\n * @export\r\n * @class RequiredError\r\n * @extends {Error}\r\n */\r\nexport class RequiredError extends Error {\r\n name: \"RequiredError\" = \"RequiredError\";\r\n constructor(public field: string, msg?: string) {\r\n super(msg);\r\n }\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\n/**\r\n * Bias Proof License API\r\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * \r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nimport { Configuration } from \"./configuration\";\r\nimport { RequiredError, RequestArgs } from \"./base\";\r\nimport { AxiosInstance } from 'axios';\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const DUMMY_BASE_URL = 'https://example.com'\r\n\r\n/**\r\n *\r\n * @throws {RequiredError}\r\n * @export\r\n */\r\nexport const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) {\r\n if (paramValue === null || paramValue === undefined) {\r\n throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) {\r\n if (configuration && configuration.apiKey) {\r\n const localVarApiKeyValue = typeof configuration.apiKey === 'function'\r\n ? await configuration.apiKey(keyParamName)\r\n : await configuration.apiKey;\r\n object[keyParamName] = localVarApiKeyValue;\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setBasicAuthToObject = function (object: any, configuration?: Configuration) {\r\n if (configuration && (configuration.username || configuration.password)) {\r\n object[\"auth\"] = { username: configuration.username, password: configuration.password };\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setBearerAuthToObject = async function (object: any, configuration?: Configuration) {\r\n if (configuration && configuration.accessToken) {\r\n const accessToken = typeof configuration.accessToken === 'function'\r\n ? await configuration.accessToken()\r\n : await configuration.accessToken;\r\n object[\"Authorization\"] = \"Bearer \" + accessToken;\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) {\r\n if (configuration && configuration.accessToken) {\r\n const localVarAccessTokenValue = typeof configuration.accessToken === 'function'\r\n ? await configuration.accessToken(name, scopes)\r\n : await configuration.accessToken;\r\n object[\"Authorization\"] = \"Bearer \" + localVarAccessTokenValue;\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setSearchParams = function (url: URL, ...objects: any[]) {\r\n const searchParams = new URLSearchParams(url.search);\r\n for (const object of objects) {\r\n for (const key in object) {\r\n searchParams.set(key, object[key]);\r\n }\r\n }\r\n url.search = searchParams.toString();\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) {\r\n const nonString = typeof value !== 'string';\r\n const needsSerialization = nonString && configuration && configuration.isJsonMime\r\n ? configuration.isJsonMime(requestOptions.headers['Content-Type'])\r\n : nonString;\r\n return needsSerialization\r\n ? JSON.stringify(value !== undefined ? value : {})\r\n : (value || \"\");\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const toPathString = function (url: URL) {\r\n return url.pathname + url.search + url.hash\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {\r\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\r\n const axiosRequestArgs = {...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url};\r\n return axios.request(axiosRequestArgs);\r\n };\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\n/**\r\n * Bias Proof License API\r\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * \r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport interface ConfigurationParameters {\r\n apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise);\r\n username?: string;\r\n password?: string;\r\n accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise);\r\n basePath?: string;\r\n baseOptions?: any;\r\n formDataCtor?: new () => any;\r\n}\r\n\r\nexport class Configuration {\r\n /**\r\n * parameter for apiKey security\r\n * @param name security name\r\n * @memberof Configuration\r\n */\r\n apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise);\r\n /**\r\n * parameter for basic security\r\n *\r\n * @type {string}\r\n * @memberof Configuration\r\n */\r\n username?: string;\r\n /**\r\n * parameter for basic security\r\n *\r\n * @type {string}\r\n * @memberof Configuration\r\n */\r\n password?: string;\r\n /**\r\n * parameter for oauth2 security\r\n * @param name security name\r\n * @param scopes oauth2 scope\r\n * @memberof Configuration\r\n */\r\n accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise);\r\n /**\r\n * override base path\r\n *\r\n * @type {string}\r\n * @memberof Configuration\r\n */\r\n basePath?: string;\r\n /**\r\n * base options for axios calls\r\n *\r\n * @type {any}\r\n * @memberof Configuration\r\n */\r\n baseOptions?: any;\r\n /**\r\n * The FormData constructor that will be used to create multipart form data\r\n * requests. You can inject this here so that execution environments that\r\n * do not support the FormData class can still run the generated client.\r\n *\r\n * @type {new () => FormData}\r\n */\r\n formDataCtor?: new () => any;\r\n\r\n constructor(param: ConfigurationParameters = {}) {\r\n this.apiKey = param.apiKey;\r\n this.username = param.username;\r\n this.password = param.password;\r\n this.accessToken = param.accessToken;\r\n this.basePath = param.basePath;\r\n this.baseOptions = param.baseOptions;\r\n this.formDataCtor = param.formDataCtor;\r\n }\r\n\r\n /**\r\n * Check if the given MIME is a JSON MIME.\r\n * JSON MIME examples:\r\n * application/json\r\n * application/json; charset=UTF8\r\n * APPLICATION/JSON\r\n * application/vnd.company+json\r\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\r\n * @return True if the given MIME is JSON, false otherwise.\r\n */\r\n public isJsonMime(mime: string): boolean {\r\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\r\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\r\n }\r\n}\r\n","import { trackPromise } from \"react-promise-tracker\";\r\nimport http from \"./axiosService\";\r\nimport { getToken } from \"utils/cookieHelper\";\r\nimport { Configuration, ConfigurationParameters, CreateCheckoutSessionRequest, DowngradeSubscriptionRequest, PaymentsApi, UpgradeSubscriptionReqDTO } from \"external-api/license-api\";\r\n\r\nconst apiUrl = `${process.env.REACT_APP_LICENSE_API_URL}`;\r\n\r\n\r\nfunction getApi() {\r\n const token = getToken();\r\n const configParams: ConfigurationParameters = {\r\n basePath: apiUrl,\r\n baseOptions: {\r\n headers:\r\n {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n };\r\n\r\n const configuration = new Configuration(configParams);\r\n const axios = http.axios;\r\n return new PaymentsApi(configuration, apiUrl, axios);\r\n}\r\n\r\nexport default class EcomService {\r\n\r\n api: PaymentsApi\r\n\r\n constructor() {\r\n this.api = getApi();\r\n }\r\n createCheckoutSession = async (data: CreateCheckoutSessionRequest) => {\r\n const resp = await trackPromise(this.api.paymentsCreateCheckoutSession(data));\r\n return resp.data;\r\n }\r\n createPortalSession = async () => {\r\n const resp = await trackPromise(this.api.paymentsCustomerPortal());\r\n return resp.data;\r\n }\r\n createFreeTier = async (data: CreateCheckoutSessionRequest) => {\r\n const resp = await trackPromise(this.api.paymentsCheckoutFreeTier(data));\r\n return resp.data;\r\n }\r\n downgradeSubscription = async (data: DowngradeSubscriptionRequest) => {\r\n const resp = await trackPromise(this.api.paymentsSubscriptionDowngradeStart(data));\r\n return resp.data;\r\n }\r\n upgradeSubscription = async (data: UpgradeSubscriptionReqDTO) => {\r\n const resp = await trackPromise(this.api.paymentsUpgradeSubscription(data));\r\n return resp.data;\r\n }\r\n}","\r\nimport { SupportApi, Configuration, ConfigurationParameters, SupportDTO } from \"external-api/license-api\";\r\nimport Cookies from \"js-cookie\";\r\nimport { trackPromise } from \"react-promise-tracker\";\r\nimport { CookieNames } from \"utils/constants\";\r\nimport { getToken } from \"utils/cookieHelper\";\r\n\r\nimport http from \"./axiosService\";\r\nconst apiUrl = `${process.env.REACT_APP_LICENSE_API_URL}`;\r\n\r\nfunction getApi() {\r\n const token = getToken();\r\n const configParams: ConfigurationParameters = {\r\n basePath: apiUrl,\r\n baseOptions: {\r\n headers:\r\n {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n };\r\n\r\n const axios = http.axios;\r\n const configuration = new Configuration(configParams);\r\n return new SupportApi(configuration, apiUrl, axios);\r\n}\r\n\r\nexport default class SupportService {\r\n\r\n supportApi: SupportApi\r\n\r\n constructor() {\r\n this.supportApi = getApi();\r\n }\r\n\r\n submitSupportTicketAsync = async (supportRequest: SupportDTO) => {\r\n const resp = await trackPromise(this.supportApi.supportPost(supportRequest));\r\n return resp.data;\r\n }\r\n\r\n}","\r\nimport { enqueueNotification } from \"store/ui/uiSlice\";\r\n\r\nexport function handleAuthErrors(dispatch: any, error: any, customErrorMessage?: string) {\r\n const errorResponse = error;\r\n if (errorResponse) {\r\n\r\n switch (errorResponse.status) {\r\n case 401:\r\n dispatch(enqueueNotification({\r\n message: 'You were logged out due to inactivity. Please log in again to resume your session.',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'error'\r\n }\r\n }));\r\n break;\r\n case 409: {\r\n dispatch(enqueueNotification({\r\n message: 'There is an account with this email already. Please change your email.',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'error'\r\n }\r\n }));\r\n break;\r\n }\r\n default:\r\n dispatch(enqueueNotification({\r\n message: customErrorMessage ?? \"An error has occurred\",\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'error'\r\n }\r\n }));\r\n break;\r\n }\r\n }\r\n}","import Cookies from \"js-cookie\";\r\nimport { trackPromise } from \"react-promise-tracker\";\r\nimport { CookieNames } from \"utils/constants\";\r\nimport http from \"./axiosService\";\r\nimport { getToken, saveToken } from \"utils/cookieHelper\";\r\nimport { Configuration, ConfigurationParameters, CreateCheckoutSessionRequest, PaymentsApi, ProductApi } from \"external-api/license-api\";\r\n\r\nconst apiUrl = `${process.env.REACT_APP_LICENSE_API_URL}`;\r\n\r\n\r\nfunction getApi() {\r\n const token = getToken();\r\n const configParams: ConfigurationParameters = {\r\n basePath: apiUrl,\r\n baseOptions: {\r\n headers:\r\n {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n };\r\n\r\n const configuration = new Configuration(configParams);\r\n const axios = http.axios;\r\n return new ProductApi(configuration, apiUrl, axios);\r\n}\r\n\r\nexport default class ProductService {\r\n\r\n api: ProductApi\r\n\r\n constructor() {\r\n this.api = getApi();\r\n }\r\n\r\n getPlans = async () => {\r\n const resp = await trackPromise(this.api.productGetAllPlans());\r\n return resp.data;\r\n }\r\n}","import { navigate } from \"@reach/router\";\r\nimport {\r\n createAsyncThunk,\r\n createSlice, PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\nimport { loadStripe } from \"@stripe/stripe-js\";\r\nimport { ICourseConfiguration, IGroup, IGroupOverviewEmailConfiguration, IParticipantsConfiguration, IPlanConfiguration, ITestConfiguration } from \"domain/group/types\";\r\nimport { ContactUsFormData } from \"domain/support/ContactUsForm\";\r\nimport { BadgeResponseDTO } from \"external-api/account-api\";\r\nimport { CreateCheckoutSessionRequest, EcomPlanDTO, SupportDTO } from \"external-api/license-api\";\r\nimport AccountService from \"services/accountService\";\r\nimport EcomService from \"services/ecomService\";\r\nimport SupportService from \"services/supportService\";\r\nimport { ValidationErrors, IApplicationState } from \"store\";\r\nimport { EmailTexts } from \"utils/constants\";\r\nimport { handleAuthErrors } from \"utils/errorHandling\";\r\nimport { Paths } from \"utils/constants\";\r\nimport { tryRefreshTokenAction } from \"store/user/userSlice\";\r\nimport ProductService from \"services/productService\";\r\nimport { IDateTime } from \"domain/group/common/groupOverview/GroupOverview\";\r\n\r\nexport interface IUiCurrentPlan {\r\n change: \"NONE\"\r\n | \"PLAN_SELECTION_STARTED\" | \"PLAN_SELECTION_COMPLETED\"\r\n | \"UPGRADE_STARTED\" | \"UPGRADE_COMPLETED\"\r\n | \"DOWNGRADE_STARTED\" | \"DOWNGRADE_COMPLETED\"\r\n planUpgradeForMoreEmails: \"NOT_NEEDED\" | \"REQUESTED\" | \"CANCELED\" | \"COMPLETED\"\r\n}\r\n\r\nexport interface IUiState {\r\n group: IGroup\r\n currentPlan: IUiCurrentPlan\r\n plans: EcomPlanDTO[]\r\n logos: BadgeResponseDTO[]\r\n notifications: any[]\r\n}\r\n\r\nconst checkoutAction = createAsyncThunk<\r\n {\r\n status: string,\r\n sessionId: string\r\n },\r\n { priceId: string, quantity: number },\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@ui/checkout\",\r\n async ({ priceId, quantity }, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n\r\n await dispatch(tryRefreshTokenAction());\r\n const stripeKey = `${process.env.REACT_APP_STRIPE_KEY}`;\r\n\r\n const ecomService = new EcomService();\r\n const body: CreateCheckoutSessionRequest = {\r\n priceId: priceId,\r\n quantity: quantity\r\n };\r\n\r\n const stripePromise = loadStripe(stripeKey);\r\n\r\n const stripe = await stripePromise;\r\n const resp = await ecomService.createCheckoutSession(body);\r\n\r\n if (stripe && resp) {\r\n const stripeRes = await stripe.redirectToCheckout({ sessionId: resp });\r\n }\r\n\r\n return {\r\n status: 'success',\r\n sessionId: resp\r\n }\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err, 'There was an issue with creating checkout session.');\r\n return rejectWithValue(err.body)\r\n }\r\n });\r\n\r\nconst checkoutFreeTierAction = createAsyncThunk<\r\n undefined,\r\n { priceId: string, quantity: number },\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>\r\n (\"@@ui/checkout-free\", async ({ priceId, quantity }, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n const stripeKey = `${process.env.REACT_APP_STRIPE_KEY}`;\r\n const ecomService = new EcomService();\r\n const body: CreateCheckoutSessionRequest = {\r\n priceId: priceId,\r\n quantity: quantity\r\n };\r\n\r\n await ecomService.createFreeTier(body);\r\n navigate(Paths.PAYMENT_SUCCESS);\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err, 'There was an issue with creating free tier.');\r\n navigate(Paths.PLANS);\r\n return rejectWithValue(err.body);\r\n }\r\n });\r\n\r\nconst submitSupportTicketAction = createAsyncThunk<\r\n {\r\n status: string,\r\n supportTicketInfo: SupportDTO\r\n },\r\n ContactUsFormData,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }\r\n>(\"@@ui/submit-support-ticket\", async (supportTicketData: ContactUsFormData, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n const supportRequest: SupportDTO = {\r\n email: supportTicketData.email,\r\n comment: supportTicketData.description,\r\n name: supportTicketData.name,\r\n phoneNumber: supportTicketData.phoneNumber\r\n };\r\n\r\n const service = new SupportService();\r\n const resp = await service.submitSupportTicketAsync(supportRequest);\r\n\r\n dispatch(enqueueNotification({\r\n message: 'Successfully submitted',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n\r\n return {\r\n status: 'success',\r\n supportTicketInfo: resp\r\n }\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err, 'There was an issue with submitting the ticket');\r\n\r\n return rejectWithValue(err.body)\r\n }\r\n});\r\n\r\nconst setGroupToEdit = createAsyncThunk<\r\n undefined,\r\n string,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/ui/set-group\",\r\n async (groupId, thunkAPI) => {\r\n const { rejectWithValue, dispatch, getState } = thunkAPI;\r\n try {\r\n const { group } = getState();\r\n const groupToEdit = group.groupData.find(x => x.id === groupId);\r\n if (groupToEdit) {\r\n const uiGroup: IGroup = {\r\n id: groupToEdit.id,\r\n numberOfSlotsUsed: groupToEdit.numberOfSlotsUsed,\r\n name: groupToEdit.name ?? \"\",\r\n description: groupToEdit.description ?? \"\",\r\n participants: groupToEdit?.participants ?? [],\r\n anonymousUsers: groupToEdit?.anonymousUsers ?? false,\r\n planConfiguration: {\r\n id: groupToEdit.planConfiguration?.id,\r\n name: groupToEdit.planConfiguration?.name,\r\n testConfiguration: groupToEdit.planConfiguration?.testConfiguration?.map(x => {\r\n return {\r\n categoryId: x.categoryId,\r\n id: x.id\r\n } as ITestConfiguration\r\n }) ?? [],\r\n courseConfiguration: groupToEdit.planConfiguration?.courseConfiguration?.map(x => {\r\n return {\r\n categoryId: x.categoryId,\r\n id: x.id,\r\n courseModuleIds: x.courseModuleIds?.map(x => { return { moduleId: x } })\r\n } as ICourseConfiguration\r\n }) ?? []\r\n } as IPlanConfiguration,\r\n emailConfiguration: {\r\n reminderEmailBody: groupToEdit.emailConfiguration?.reminderEmailBody ?? \"\",\r\n reminderEmailSubject: groupToEdit.emailConfiguration?.reminderEmailSubject ?? \"\",\r\n invitationEmailSubject: groupToEdit.emailConfiguration?.invitationEmailSubject ?? \"\",\r\n invitationEmailBody: groupToEdit.emailConfiguration?.invitationEmailBody ?? \"\",\r\n numberOfReminders: groupToEdit.emailConfiguration?.numberOfReminders ?? 0,\r\n daysBetweenReminders: groupToEdit.emailConfiguration?.daysBetweenReminders ?? 0,\r\n invitationDates: groupToEdit.emailConfiguration?.invitationalEmailDates?.map(x => {\r\n return {\r\n dateTime: new Date(x),\r\n initialLoaded: true\r\n } as IDateTime\r\n }) ?? []\r\n },\r\n anonymousLinks: groupToEdit?.testSchedules?.map(schedule => ({\r\n id: schedule.id ?? \"\",\r\n url: schedule.testUrl ?? \"\",\r\n }))\r\n }\r\n dispatch(editGroup(uiGroup));\r\n }\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\nconst updateOverviewSectionAsync = createAsyncThunk<\r\n undefined,\r\n IGroupOverviewEmailConfiguration,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/ui/update-overview\",\r\n async (overview, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(updateOverviewSection(overview));\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\nconst updateParticipantsSectionAsync = createAsyncThunk<\r\n undefined,\r\n IParticipantsConfiguration,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/ui/update-participants\",\r\n async (participants, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(updateParticipantSection(participants));\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\nconst updatePlanConfigurationSectionAsync = createAsyncThunk<\r\n undefined,\r\n IPlanConfiguration,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/ui/update-planconfiguration\",\r\n async (planConfiguration, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(updateConfigurationSection(planConfiguration));\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\nconst getAllPlansAction = createAsyncThunk<\r\n EcomPlanDTO[],\r\n undefined,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }\r\n>(\"@@user/get-all-plans\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue } = thunkAPI;\r\n try {\r\n const service = new ProductService();\r\n const resData: EcomPlanDTO[] = await service.getPlans();\r\n return resData;\r\n }\r\n catch (err) {\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n);\r\n\r\nconst getAllLogosAction = createAsyncThunk<\r\n BadgeResponseDTO[],\r\n undefined,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }\r\n>(\"@@user/get-all-logos\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue } = thunkAPI;\r\n try {\r\n\r\n const service = new AccountService();\r\n const resData: BadgeResponseDTO[] = await service.getLogos();\r\n return resData;\r\n }\r\n catch (err) {\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n);\r\n\r\nconst initialState: IUiState = {\r\n group: {\r\n id: \"\",\r\n numberOfSlotsUsed: 0,\r\n name: \"\",\r\n description: \"\",\r\n emailConfiguration: {\r\n invitationDates: [],\r\n numberOfReminders: 0,\r\n daysBetweenReminders: 0,\r\n invitationEmailSubject: EmailTexts.INVITATION_SUBJECT,\r\n invitationEmailBody: EmailTexts.INVITATION_BODY,\r\n reminderEmailSubject: EmailTexts.REMINDER_SUBJECT,\r\n reminderEmailBody: EmailTexts.REMINDER_BODY,\r\n },\r\n participants: [],\r\n anonymousUsers: false,\r\n planConfiguration: {\r\n name: \"\",\r\n testConfiguration: [],\r\n courseConfiguration: []\r\n }\r\n },\r\n currentPlan: { change: \"NONE\", planUpgradeForMoreEmails: \"NOT_NEEDED\" },\r\n plans: [],\r\n logos: [],\r\n notifications: []\r\n}\r\n\r\nconst uiSlice = createSlice({\r\n name: \"@@ui\",\r\n initialState,\r\n reducers: {\r\n editGroup(state, action: PayloadAction) {\r\n state.group = action.payload;\r\n },\r\n clearGroup(state) {\r\n state.group = initialState.group\r\n },\r\n updateParticipantSection(state, action: PayloadAction) {\r\n state.group.anonymousUsers = action.payload.anonymousUsers;\r\n state.group.participants = action.payload.participants;\r\n state.group.numberOfSlotsUsed = action.payload.participants.length;\r\n },\r\n updateOverviewSection(state, action: PayloadAction) {\r\n state.group.name = action.payload.name;\r\n state.group.description = action.payload.description;\r\n state.group.emailConfiguration = action.payload.emailConfiguration;\r\n },\r\n updateConfigurationSection(state, action: PayloadAction) {\r\n state.group.planConfiguration = action.payload;\r\n },\r\n planSelectionStarted(state) {\r\n state.currentPlan.change = \"PLAN_SELECTION_STARTED\";\r\n },\r\n planSelectionCompleted(state) {\r\n state.currentPlan.change = \"PLAN_SELECTION_COMPLETED\";\r\n },\r\n planUpgradeStarted(state) {\r\n state.currentPlan.change = \"UPGRADE_STARTED\";\r\n },\r\n planUpgradeCompleted(state) {\r\n state.currentPlan.change = \"UPGRADE_COMPLETED\";\r\n },\r\n planChangeDiscarded(state) {\r\n state.currentPlan.change = \"NONE\";\r\n },\r\n planUpgradeForMoreEmailsRequested(state) {\r\n state.currentPlan.planUpgradeForMoreEmails = \"REQUESTED\";\r\n },\r\n planUpgradeForMoreEmailsCompleted(state) {\r\n state.currentPlan.planUpgradeForMoreEmails = \"COMPLETED\";\r\n },\r\n planUpgradeForMoreEmailsCanceled(state) {\r\n state.currentPlan.planUpgradeForMoreEmails = \"CANCELED\";\r\n },\r\n planUpgradeForMoreEmailsNotNeeded(state) {\r\n state.currentPlan.planUpgradeForMoreEmails = \"NOT_NEEDED\";\r\n },\r\n enqueueNotification(state, action) {\r\n state.notifications = [...state.notifications, {\r\n ...action.payload,\r\n key: action.payload.options.key\r\n }]\r\n },\r\n closeNotification(state, action) {\r\n state.notifications = state.notifications.map(notification => (\r\n (action.payload.dismissAll || notification.key === action.payload)\r\n ? { ...notification, dismissed: true }\r\n : { ...notification }\r\n ))\r\n },\r\n removeNotification(state, action) {\r\n state.notifications = state.notifications.filter(notification => notification.key !== action.payload)\r\n }\r\n },\r\n extraReducers: builder => {\r\n builder.addCase(getAllLogosAction.fulfilled, (state, action) => {\r\n state.logos = action.payload;\r\n })\r\n builder.addCase(getAllPlansAction.fulfilled, (state, action) => {\r\n state.plans = action.payload;\r\n })\r\n }\r\n});\r\nexport {\r\n checkoutAction,\r\n submitSupportTicketAction,\r\n updateOverviewSectionAsync,\r\n updateParticipantsSectionAsync,\r\n updatePlanConfigurationSectionAsync,\r\n getAllLogosAction,\r\n getAllPlansAction,\r\n checkoutFreeTierAction\r\n}\r\n\r\nexport const {\r\n enqueueNotification,\r\n removeNotification,\r\n closeNotification,\r\n updateParticipantSection,\r\n updateConfigurationSection,\r\n updateOverviewSection,\r\n clearGroup,\r\n editGroup,\r\n planSelectionStarted,\r\n planSelectionCompleted,\r\n planUpgradeStarted,\r\n planUpgradeCompleted,\r\n planChangeDiscarded,\r\n planUpgradeForMoreEmailsRequested,\r\n planUpgradeForMoreEmailsCompleted,\r\n planUpgradeForMoreEmailsCanceled,\r\n planUpgradeForMoreEmailsNotNeeded\r\n} = uiSlice.actions\r\n\r\nexport {\r\n setGroupToEdit\r\n}\r\n\r\nexport default uiSlice.reducer;","import _ from \"lodash\";\r\nimport {\r\n createAsyncThunk,\r\n createSlice,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\nimport { navigate } from \"@reach/router\"\r\nimport { Paths, CookieNames } from \"utils/constants\";\r\nimport Cookies from \"js-cookie\";\r\nimport AccountService from \"services/accountService\";\r\nimport { ValidationErrors, IApplicationState } from \"store\";\r\nimport { AccountInfo, AuthenticatedModel, BadgeDTO, BadgeResponseDTO, ForgotPasswordModel, ResetPasswordModel, TokenRequestDTO, UpdateAccountInfoDto, UpdateEmailDto, UpdatePasswordDto } from \"external-api/account-api\";\r\nimport { enqueueNotification } from \"store/ui/uiSlice\";\r\nimport { BadgeFormData } from \"domain/group/badge/BadgeCardPreview\";\r\nimport { CreateAccountFormData } from \"domain/account/create-account\";\r\nimport { getAccountIdFromToken, getExpirationDate, isExpired, removeToken, saveToken } from \"utils/cookieHelper\";\r\nimport { handleAuthErrors } from \"utils/errorHandling\";\r\nimport { ForgotPasswordFormData } from \"pages/ForgotPassword\";\r\nimport { ResetPasswordFormData } from \"pages/ResetPassword\";\r\nimport EcomService from \"services/ecomService\";\r\n\r\ninterface AuthData {\r\n email: string;\r\n password: string;\r\n}\r\n\r\ninterface UserInfo {\r\n firstName: string;\r\n lastName: string;\r\n companyName: string;\r\n jobTitle: string;\r\n country: string;\r\n phoneNumber: string;\r\n ext: string;\r\n email: string;\r\n password: string;\r\n sendNews: boolean;\r\n badge: BadgeResponseDTO;\r\n planId: string\r\n authenticatedEmail: boolean\r\n}\r\n\r\nexport interface IUserState {\r\n status: 'unauthenticated' | 'pending' | 'authenticated'\r\n info: UserInfo;\r\n}\r\n\r\nconst initialState: IUserState = {\r\n status: 'unauthenticated',\r\n info: {\r\n firstName: \"\",\r\n lastName: \"\",\r\n companyName: \"\",\r\n jobTitle: \"\",\r\n country: \"\",\r\n phoneNumber: \"\",\r\n ext: \"\",\r\n email: \"\",\r\n password: \"\",\r\n sendNews: false,\r\n badge: {\r\n companyName: \"\",\r\n companyLogo: \"\",\r\n websiteUrl: \"\"\r\n },\r\n planId: \"\",\r\n authenticatedEmail: false\r\n }\r\n}\r\n\r\n//#region Update\r\nconst updateUserInfoAction = createAsyncThunk<\r\n undefined,\r\n UpdateAccountInfoDto,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/account/update-user-info\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n const service = new AccountService();\r\n const userInfo = await service.updateUserAsync(data);\r\n dispatch(updateAccount(userInfo));\r\n dispatch(enqueueNotification({\r\n message: 'Successfully updated account information.',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\n\r\nconst updateEmailAction = createAsyncThunk<\r\n undefined,\r\n UpdateEmailDto,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/account/update-email\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n const service = new AccountService();\r\n await service.updateEmailAsync(data);\r\n dispatch(enqueueNotification({\r\n message: 'A verification email has been sent. Please follow the directions to verify your new email.',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\nconst updatePasswordAction = createAsyncThunk<\r\n undefined,\r\n UpdatePasswordDto,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/account/update-password\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n const service = new AccountService();\r\n await service.updatePasswordAsync(data);\r\n\r\n dispatch(enqueueNotification({\r\n message: 'Successfully updated password.',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err, err.data.description);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\nconst reVerifyEmailAction = createAsyncThunk<\r\n undefined,\r\n {\r\n token: string,\r\n email: string,\r\n oldEmail: string\r\n },\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/account/update-email\",\r\n async ({ token, email, oldEmail }, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n const service = new AccountService();\r\n await service.reConfirmEmailAsync(token, email, oldEmail);\r\n\r\n dispatch(enqueueNotification({\r\n message: 'Successfully Verified Email, please login again',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\n//#endregion\r\n\r\nconst addBadgeAction = createAsyncThunk<\r\n BadgeDTO,\r\n BadgeFormData,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }\r\n>(\"@@user/add-badge\", async (formdata, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n\r\n await dispatch(tryRefreshTokenAction());\r\n const service = new AccountService();\r\n\r\n const resp = await service.addBadgeAsync(formdata.companyName, formdata.websiteUrl, \"\", formdata.companyLogo!);\r\n\r\n dispatch(enqueueNotification({\r\n message: 'Successfully downloaded badge.',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n\r\n dispatch(addBadge(resp));\r\n return resp;\r\n }\r\n catch (err) {\r\n dispatch(enqueueNotification({\r\n message: 'There was an error',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'error'\r\n }\r\n }));\r\n\r\n return rejectWithValue(err.body)\r\n }\r\n});\r\n\r\nconst loginAction = createAsyncThunk<\r\n AccountInfo,\r\n AuthData,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }\r\n>(\"@@user/login\", async (userAuthData: AuthData, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n const service = new AccountService();\r\n const request: AuthenticatedModel = {\r\n accountName: userAuthData.email,\r\n password: userAuthData.password\r\n }\r\n\r\n removeToken();\r\n\r\n const resp = await service.loginAsync(request);\r\n\r\n dispatch(enqueueNotification({\r\n message: 'Successfully logged in',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n\r\n navigate(Paths.HOME);\r\n return resp;\r\n }\r\n catch (err) {\r\n dispatch(enqueueNotification({\r\n message: 'You have entered an incorrect username/password',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'error'\r\n }\r\n }));\r\n\r\n return rejectWithValue(err.body)\r\n }\r\n});\r\n\r\nconst createAccountAction = createAsyncThunk<\r\n {\r\n status: string,\r\n userInfo: AccountInfo\r\n },\r\n CreateAccountFormData,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }\r\n>(\"@@user/create-account\", async (userInfoData: CreateAccountFormData, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n const service = new AccountService();\r\n const request: AccountInfo = {\r\n emailAddress: userInfoData.email,\r\n firstName: userInfoData.firstName,\r\n lastName: userInfoData.lastName,\r\n password: userInfoData.password,\r\n companyName: userInfoData.companyName,\r\n jobTitle: userInfoData.jobTitle,\r\n country: userInfoData.country,\r\n phoneNumber: userInfoData.phoneNumber,\r\n phoneNumberExt: userInfoData.ext,\r\n emailOptIn: userInfoData.sendNews,\r\n authenticatedEmail: false\r\n }\r\n const resp = await service.createAccountAsync(request);\r\n\r\n dispatch(enqueueNotification({\r\n message: 'Successfully created account',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n\r\n navigate(Paths.HOME);\r\n\r\n return {\r\n status: 'success',\r\n userInfo: resp\r\n }\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err, 'There was an issue with creating the account');\r\n return rejectWithValue(err.body)\r\n }\r\n});\r\n\r\n\r\nconst tryRefreshTokenAction = createAsyncThunk<\r\n undefined,\r\n undefined,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }\r\n>(\"@@user/refresh-token\", async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n\r\n let token = Cookies.get(CookieNames.ACCOUNT_TOKEN);\r\n let refreshToken = Cookies.get(CookieNames.REFRESH_TOKEN);\r\n\r\n if (token && isExpired(getExpirationDate(token))) {\r\n const accountService = new AccountService();\r\n const accountId = getAccountIdFromToken(token);\r\n if (accountId && refreshToken && token) {\r\n const authRequest: TokenRequestDTO = {\r\n token,\r\n refreshToken,\r\n accountId\r\n };\r\n\r\n const updatedToken = await accountService.refreshToken(authRequest);\r\n if (updatedToken.success) {\r\n saveToken(updatedToken);\r\n } else if (updatedToken.errors && updatedToken.errors.length > 0) {\r\n dispatch(enqueueNotification({\r\n message: updatedToken.errors[0] ?? \"Your token Expired.\",\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'error'\r\n }\r\n }));\r\n }\r\n }\r\n }\r\n }\r\n catch (err) {\r\n return rejectWithValue(err.body)\r\n }\r\n});\r\n\r\nconst forgotPasswordAction = createAsyncThunk<\r\n undefined,\r\n ForgotPasswordFormData,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/account/forgot-password\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n const accountService = new AccountService();\r\n const requestBody: ForgotPasswordModel = {\r\n email: data.email\r\n };\r\n await accountService.forgotPasswordAsync(requestBody);\r\n\r\n dispatch(enqueueNotification({\r\n message: 'We have sent an email to reset your password.',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n\r\n navigate(Paths.LOGISTER);\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\nconst resetPasswordAction = createAsyncThunk<\r\n undefined,\r\n ResetPasswordFormData,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/account/reset-password\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n const accountService = new AccountService();\r\n const requestBody: ResetPasswordModel = {\r\n password: data.password,\r\n confirmPassword: data.passwordConfirmation,\r\n email: data.email,\r\n token: data.token\r\n };\r\n\r\n await accountService.resetPasswordAsync(requestBody);\r\n\r\n dispatch(enqueueNotification({\r\n message: 'Your password has been reset. Please login again',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n\r\n navigate(Paths.LOGISTER);\r\n }\r\n catch (err) {\r\n\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\n\r\nconst confirmEmailAction = createAsyncThunk<\r\n undefined,\r\n { token: string, email: string },\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/account/confirm-email\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n const accountService = new AccountService();\r\n await accountService.confirmEmail(data.email, data.token);\r\n\r\n dispatch(enqueueNotification({\r\n message: 'Your email has been verified. Please login now.',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n }\r\n catch (err) {\r\n\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\nconst getUserInfoAction = createAsyncThunk<\r\n AccountInfo,\r\n undefined,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/account/get-user-info\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n const service = new AccountService();\r\n const userInfo = await service.getUserInfo();\r\n return userInfo;\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\n\r\nconst createCustomerPortalAction = createAsyncThunk<\r\n string,\r\n undefined,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/account/create-customer-portal\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n const service = new EcomService();\r\n const url = await service.createPortalSession();\r\n\r\n return url;\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\n// -- For future use - not for MVP\r\nconst resendConfirmationAction = createAsyncThunk<\r\n undefined,\r\n undefined,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/account/resend-email-confirmation\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n const service = new AccountService();\r\n const emailConfirmation = await service.resendConfirmationEmail();\r\n dispatch(enqueueNotification({\r\n message: 'We have resent your verification email to your email.',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\n\r\n\r\n\r\nconst userSlice = createSlice({\r\n name: \"@@user\",\r\n initialState,\r\n reducers: {\r\n mockLogin: (state) => {\r\n state.status = \"authenticated\"\r\n },\r\n logout: (state) => {\r\n // From here we can take action only at this \"counter\" state\r\n // But, as we have taken care of this particular \"logout\" action\r\n // in rootReducer, we can use it to CLEAR the complete Redux Store's state\r\n },\r\n addBadge: (state, action: PayloadAction) => {\r\n if (state.info) {\r\n state.info.badge.companyLogo = action.payload.companyLogo ?? \"\";\r\n state.info.badge.companyName = action.payload.companyName ?? \"\";\r\n state.info.badge.websiteUrl = action.payload.websiteUrl ?? \"\";\r\n }\r\n },\r\n updateAccount: (state, action: PayloadAction) => {\r\n if (state.info) {\r\n state.info = {\r\n companyName: action.payload.companyName,\r\n jobTitle: action.payload.jobTitle ?? \"\",\r\n country: action.payload.country,\r\n phoneNumber: action.payload.phoneNumber,\r\n ext: action.payload.phoneNumberExt!,\r\n firstName: action.payload.firstName,\r\n lastName: action.payload.lastName,\r\n email: action.payload.emailAddress,\r\n sendNews: action.payload.emailOptIn,\r\n password: \"\",\r\n badge: {\r\n companyName: action.payload.badge?.companyName ?? \"\",\r\n companyLogo: action.payload.badge?.companyLogo ?? \"\",\r\n websiteUrl: action.payload.badge?.websiteUrl ?? \"\"\r\n },\r\n planId: action.payload.planId ?? \"\",\r\n authenticatedEmail: action.payload.authenticatedEmail ?? false\r\n };\r\n }\r\n },\r\n },\r\n extraReducers: builder => {\r\n builder.addCase(loginAction.pending, (state, action) => {\r\n state.status = \"pending\";\r\n })\r\n builder.addCase(loginAction.fulfilled, (state, action) => {\r\n\r\n state.status = \"authenticated\";\r\n state.info = {\r\n companyName: action.payload.companyName,\r\n jobTitle: action.payload.jobTitle ?? \"\",\r\n country: action.payload.country,\r\n phoneNumber: action.payload.phoneNumber,\r\n ext: action.payload.phoneNumberExt!,\r\n firstName: action.payload.firstName,\r\n lastName: action.payload.lastName,\r\n email: action.payload.emailAddress,\r\n sendNews: action.payload.emailOptIn,\r\n password: \"\",\r\n badge: {\r\n companyName: action.payload.badge?.companyName ?? \"\",\r\n companyLogo: action.payload.badge?.companyLogo ?? \"\",\r\n websiteUrl: action.payload.badge?.websiteUrl ?? \"\"\r\n },\r\n planId: action.payload.planId ?? \"\",\r\n authenticatedEmail: action.payload.authenticatedEmail ?? false\r\n };\r\n\r\n })\r\n builder.addCase(getUserInfoAction.fulfilled, (state, action) => {\r\n state.info = {\r\n ...state.info,\r\n ...action.payload,\r\n }\r\n })\r\n builder.addCase(loginAction.rejected, (state, action) => {\r\n state.status = \"unauthenticated\";\r\n })\r\n builder.addCase(createAccountAction.pending, (state, action) => {\r\n state.status = \"pending\";\r\n })\r\n builder.addCase(createAccountAction.fulfilled, (state, action) => {\r\n state.status = \"authenticated\";\r\n state.info = {\r\n companyName: action.payload.userInfo.companyName,\r\n jobTitle: action.payload.userInfo.jobTitle ?? \"\",\r\n country: action.payload.userInfo.country,\r\n phoneNumber: action.payload.userInfo.phoneNumber,\r\n ext: action.payload.userInfo.phoneNumberExt!,\r\n firstName: action.payload.userInfo.firstName,\r\n lastName: action.payload.userInfo.lastName,\r\n email: action.payload.userInfo.emailAddress,\r\n sendNews: action.payload.userInfo.emailOptIn,\r\n password: \"\",\r\n badge: {\r\n companyName: \"\",\r\n companyLogo: \"\",\r\n websiteUrl: \"\"\r\n },\r\n planId: \"\",\r\n authenticatedEmail: false\r\n };\r\n\r\n })\r\n builder.addCase(createAccountAction.rejected, (state, action) => {\r\n state.status = \"unauthenticated\";\r\n })\r\n builder.addCase(createCustomerPortalAction.fulfilled, (state, action) => {\r\n })\r\n }\r\n});\r\n\r\nexport {\r\n loginAction,\r\n createAccountAction,\r\n addBadgeAction,\r\n tryRefreshTokenAction,\r\n forgotPasswordAction,\r\n resetPasswordAction,\r\n confirmEmailAction,\r\n getUserInfoAction,\r\n resendConfirmationAction,\r\n createCustomerPortalAction,\r\n updateUserInfoAction,\r\n updateEmailAction,\r\n reVerifyEmailAction,\r\n updatePasswordAction\r\n}\r\n\r\nexport const {\r\n logout,\r\n mockLogin,\r\n addBadge,\r\n updateAccount\r\n} = userSlice.actions\r\nexport default userSlice.reducer;\r\n","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\r\nimport Grow from '@material-ui/core/Grow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Popper from '@material-ui/core/Popper';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport MenuList from '@material-ui/core/MenuList';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { getUser } from 'store/user/userSelector';\r\nimport { navigate } from '@reach/router';\r\nimport { Paths } from 'utils/constants';\r\nimport { logout } from 'store/user/userSlice';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n headerMenuRoot: {\r\n display: 'flex',\r\n borderLeft: \"1px solid #ccc\",\r\n },\r\n button: {\r\n marginRight: \"-24px\",\r\n padding: \"25px 40px 6px 40px\",\r\n color: \"#000\",\r\n fontSize: \"16px\",\r\n fontWeight: 700,\r\n textTransform: \"uppercase\",\r\n borderRadius: 0,\r\n\r\n \"&:hover, &:focus\": {\r\n color: theme.palette.primary.main,\r\n background: \"none\",\r\n }\r\n },\r\n icon: {\r\n fontSize: \"1.75em !important\",\r\n stroke: 'currentColor',\r\n strokeLinejoin: 'round',\r\n strokeWidth: '2px',\r\n },\r\n paper: {\r\n marginRight: theme.spacing(2),\r\n },\r\n }),\r\n);\r\n\r\nconst HeaderMenu = () => {\r\n const classes = useStyles();\r\n const [open, setOpen] = React.useState(false);\r\n const anchorRef = React.useRef(null);\r\n const dispatch = useDispatch();\r\n const user = useSelector(getUser)\r\n\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen);\r\n };\r\n\r\n const handleClose = (event: React.MouseEvent) => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target as HTMLElement)) {\r\n return;\r\n }\r\n\r\n setOpen(false);\r\n };\r\n\r\n function handleListKeyDown(event: React.KeyboardEvent) {\r\n if (event.key === 'Tab') {\r\n event.preventDefault();\r\n setOpen(false);\r\n }\r\n }\r\n\r\n // return focus to the button when we transitioned from !open -> open\r\n const prevOpen = React.useRef(open);\r\n React.useEffect(() => {\r\n if (prevOpen.current === true && open === false) {\r\n anchorRef.current!.focus();\r\n }\r\n\r\n prevOpen.current = open;\r\n }, [open]);\r\n\r\n return (\r\n
\r\n }\r\n >{user?.firstName ? user?.firstName : \"Mock Login\"}\r\n \r\n {({ TransitionProps, placement }) => (\r\n \r\n \r\n \r\n \r\n {\r\n handleClose(e);\r\n navigate(Paths.MYACCOUNT);\r\n }\r\n }>My account\r\n {\r\n handleClose(e);\r\n await dispatch(logout());\r\n }\r\n }>Logout\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default HeaderMenu;","import { Button, createStyles, Grid, makeStyles, Theme } from \"@material-ui/core\";\r\nimport React, { memo } from \"react\";\r\n\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n button: {\r\n borderWidth: \"2px\",\r\n textTransform: \"none\",\r\n backgroundColor: theme.palette.red.error,\r\n \"&:hover, &:focus\": {\r\n backgroundColor: theme.palette.red.error,\r\n borderColor: \"#fff\",\r\n },\r\n },\r\n secondaryButton: {\r\n borderWidth: \"0px\",\r\n textTransform: \"none\",\r\n backgroundColor: \"transparent\",\r\n fontWeight: \"bold\",\r\n color: theme.palette.red.error,\r\n \"&:hover, &:focus\": {\r\n backgroundColor: \"transparent\",\r\n color: theme.palette.red.error,\r\n borderWidth: \"0px\",\r\n },\r\n }\r\n }),\r\n);\r\n\r\ninterface IProps {\r\n label: string;\r\n onClick?: (args: any) => any\r\n disabled?: boolean\r\n type?: \"button\" | \"reset\" | \"submit\" | undefined\r\n secondary?: boolean\r\n className?: any\r\n}\r\n\r\n\r\n\r\nconst ErrorButton = ({ label, onClick, disabled = false, type = \"button\", secondary = false, className }: IProps) => {\r\n const classes = useStyles();\r\n if (secondary) return (\r\n {label}\r\n )\r\n\r\n return (\r\n {label}\r\n\r\n );\r\n};\r\n\r\nexport default ErrorButton;","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 id: \"Polygon_86\",\n \"data-name\": \"Polygon 86\",\n fill: \"none\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.378,4.72a3,3,0,0,1,5.245,0l14.9,26.823A3,3,0,0,1,34.9,36H5.1a3,3,0,0,1-2.622-4.457Z\",\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 19.99999809265137 5.177379608154297 C 19.82307815551758 5.177379608154297 19.38374900817871 5.227500915527344 19.1258373260498 5.691741943359375 L 4.224388122558594 32.51435089111328 C 3.973728179931641 32.96554183959961 4.149478912353516 33.35894012451172 4.236679077148438 33.50712966918945 C 4.323867797851562 33.65531921386719 4.5823974609375 34 5.098537445068359 34 L 34.90145874023438 34 C 35.41759872436523 34 35.67612838745117 33.65531921386719 35.7633171081543 33.50712966918945 C 35.85051727294922 33.35894012451172 36.02626800537109 32.96554183959961 35.77561950683594 32.51435852050781 L 20.87414741516113 5.691730499267578 C 20.61624717712402 5.227500915527344 20.17691802978516 5.177379608154297 19.99999809265137 5.177379608154297 M 19.99999809265137 3.177379608154297 C 21.02548027038574 3.177379608154297 22.05096244812012 3.691734313964844 22.62246894836426 4.720451354980469 L 37.52392959594727 31.54306983947754 C 38.63480758666992 33.54265975952148 37.18890762329102 36 34.90145874023438 36 L 5.098537445068359 36 C 2.811088562011719 36 1.365188598632812 33.54265975952148 2.476066589355469 31.54306983947754 L 17.37752723693848 4.720451354980469 C 17.94903373718262 3.691734313964844 18.97451591491699 3.177379608154297 19.99999809265137 3.177379608154297 Z\",\n stroke: \"none\",\n fill: \"#fff\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_288\",\n \"data-name\": \"Line 288\",\n y2: 8,\n transform: \"translate(20 14)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 3\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_6\",\n \"data-name\": \"Ellipse 6\",\n cx: 2,\n cy: 2,\n r: 2,\n transform: \"translate(18 27.131)\",\n fill: \"#fff\"\n});\n\nfunction SvgIconAlert(_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 id: \"iconAlert\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 40,\n height: 36,\n viewBox: \"0 0 40 36\",\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(SvgIconAlert);\nexport default __webpack_public_path__ + \"static/media/iconAlert.6268f6f9.svg\";\nexport { ForwardRef as ReactComponent };","\r\nimport { createSelector } from \"@reduxjs/toolkit\";\r\nimport { GroupResultsDTO } from \"external-api/license-api\";\r\nimport { IGroupState } from \"./groupSlice\";\r\n\r\nconst getId = (_: any, id: any) => id;\r\nconst _getGroupList = (state: { group: IGroupState }) => state.group.groupList;\r\nconst _getGroupData = (state: { group: IGroupState }) => state.group.groupData;\r\n\r\nexport const getGroupList = createSelector(\r\n [_getGroupList],\r\n (groups: GroupResultsDTO[]) => {\r\n return groups;\r\n }\r\n)\r\n\r\nexport const hasGroup = createSelector(\r\n [_getGroupList],\r\n (groups: GroupResultsDTO[]) => {\r\n return groups.length > 0;\r\n }\r\n)\r\n\r\nexport const getAllScoreCards = createSelector(\r\n [_getGroupList],\r\n (groups: GroupResultsDTO[]) => {\r\n return groups;\r\n }\r\n)\r\n\r\nexport const canDownloadBadge = createSelector(\r\n [_getGroupList],\r\n (groups: GroupResultsDTO[]) => {\r\n return groups.length > 0;\r\n }\r\n)\r\n\r\nexport const getTotalUsedSlots = createSelector(\r\n [_getGroupList],\r\n (groups: GroupResultsDTO[]) => {\r\n return groups.map(group => group.numberOfSlotsUsed).reduce((a, b) => a + b, 0)\r\n }\r\n)","\r\nimport { createSelector } from \"@reduxjs/toolkit\";\r\nimport { PlanDTO } from \"external-api/license-api\";\r\n\r\nconst _getPlan = (state: { plan: PlanDTO }) => state.plan;\r\n\r\nexport const hasPlan = createSelector(\r\n [_getPlan],\r\n (plan: PlanDTO) => {\r\n return plan.id !== \"\";\r\n }\r\n)\r\nexport const getPlan = createSelector(\r\n [_getPlan],\r\n (plan: PlanDTO) => {\r\n return plan;\r\n }\r\n)\r\n\r\nexport const hasStripe = createSelector(\r\n [_getPlan],\r\n (plan: PlanDTO) => {\r\n return plan.hasStripe;\r\n }\r\n)","import React, { useState } from \"react\";\r\nimport {\r\n AppBar,\r\n Toolbar,\r\n IconButton,\r\n Hidden,\r\n Tabs,\r\n Tab,\r\n Typography\r\n} from \"@material-ui/core\";\r\n\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport { Link, useLocation } from \"@reach/router\";\r\nimport { Paths } from \"utils/constants\";\r\nimport SideDrawer from \"components/SideDrawer\";\r\nimport HeaderMenu from \"./HeaderMenu\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { isAuthenticated, isEmailConfirmed } from \"store/user/userSelector\";\r\nimport ReportProblemOutlinedIcon from '@material-ui/icons/ReportProblemOutlined';\r\nimport CustomButton from \"./CustomButton\";\r\nimport ErrorButton from \"./ErrorButton\";\r\nimport { resendConfirmationAction } from \"store/user/userSlice\";\r\nimport { ReactComponent as IconAlert } from \"assets/iconAlert.svg\";\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\nimport { hasGroup } from \"store/group/groupSelectors\";\r\nimport { hasPlan } from \"store/plan/planSelectors\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n appbar: {\r\n },\r\n toolbar: {\r\n display: `flex`,\r\n justifyContent: `space-between`,\r\n height: \"80px\",\r\n backgroundColor: 'white',\r\n },\r\n logo: {\r\n display: \"block\",\r\n width: 172,\r\n height: \"auto\",\r\n },\r\n navList: {\r\n display: `flex`,\r\n justifyContent: `space-between`\r\n },\r\n linkText: {\r\n textDecoration: `none`,\r\n textTransform: `uppercase`,\r\n color: `black`\r\n },\r\n tabsHeaderMenu: {\r\n display: 'flex',\r\n height: \"100%\",\r\n },\r\n tabs: {\r\n height: \"100%\",\r\n },\r\n tabIndicator: {\r\n display: \"none\",\r\n },\r\n tab: {\r\n height: \"100%\",\r\n paddingTop: 25,\r\n color: \"#000\",\r\n fontSize: \"16px\",\r\n fontWeight: 700,\r\n textTransform: \"uppercase\",\r\n opacity: 1,\r\n\r\n \"&:hover, &:focus\": {\r\n color: theme.palette.orange.highlight,\r\n }\r\n },\r\n tabSelected: {\r\n color: theme.palette.orange.main,\r\n },\r\n headerMenu: {\r\n paddingLeft: theme.spacing(2)\r\n },\r\n banner: {\r\n width: '100%',\r\n backgroundColor: theme.palette.red.error,\r\n color: \"white\",\r\n padding: \"15px 50px\",\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n },\r\n bannerContent: {\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\",\r\n fontWeight: \"bold\"\r\n },\r\n bannerIcon: {\r\n fontSize: \"3em\",\r\n marginRight: \"1em\"\r\n },\r\n bannerButton: {\r\n marginLeft: \"auto\"\r\n }\r\n }),\r\n);\r\n\r\n\r\nconst Header = () => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const location = useLocation();\r\n const hasAPlan = useSelector(hasPlan);\r\n const hasAGroup = useSelector(hasGroup);\r\n const isAuth = useSelector(isAuthenticated);\r\n const isVerified = useSelector(isEmailConfirmed);\r\n\r\n const navLinks = [\r\n { title: `Dashboard`, path: Paths.HOME },\r\n { title: `Groups`, path: hasAPlan && !hasAGroup ? `${Paths.GROUPS}/add` : Paths.GROUPS },\r\n { title: `Support`, path: Paths.SUPPORT },\r\n ] as { title: string, path: string }[];\r\n\r\n const navTabCurrentIndex = navLinks.findIndex((link) => link.path === location.pathname)\r\n const [navTabIndex, setNavTabIndex] = useState(navTabCurrentIndex);\r\n\r\n const handleNavTabChange = (event: any, value: any) => {\r\n setNavTabIndex(value);\r\n };\r\n\r\n async function resendVerificationEmail() {\r\n await dispatch(resendConfirmationAction());\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \"Bias\r\n \r\n {isAuth &&\r\n <>\r\n \r\n
\r\n \r\n {navLinks.map(\r\n ({ title, path }, index) => \r\n )}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n {isAuth && !isVerified &&\r\n
\r\n \r\n \r\n \r\n\r\n \r\n Please check your email and follow the link to verify your email address\r\n \r\n \r\n
\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React from 'react'\r\nimport { Link } from \"@reach/router\";\r\nimport { Grid, Box, IconButton } from '@material-ui/core';\r\nimport TwitterIcon from '@material-ui/icons/Twitter';\r\nimport LinkedInIcon from '@material-ui/icons/LinkedIn';\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport { Paths } from \"utils/constants\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n footer: {\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n marginTop: \"auto\",\r\n padding: \"32px 24px\",\r\n color: \"#fff\",\r\n backgroundColor: \"#595959\",\r\n boxSizing: \"border-box\",\r\n },\r\n logo: {\r\n display: \"block\",\r\n width: 136,\r\n },\r\n info: {\r\n marginLeft: 40,\r\n },\r\n links: {\r\n display: \"flex\",\r\n lineHeight: 1,\r\n },\r\n link: {\r\n color: \"#fff\",\r\n fontSize: 14,\r\n fontWeight: 700,\r\n textDecoration: 'none',\r\n\r\n \"&:hover, &:focus\": {\r\n textDecoration: 'underline',\r\n }\r\n },\r\n pipe: {\r\n display: \"inline-block\",\r\n margin: \"0 1em\",\r\n fontWeight: 700,\r\n },\r\n copyright: {\r\n marginTop: 2,\r\n fontSize: 12,\r\n color: theme.palette.shades.grey,\r\n },\r\n socialmedia: {\r\n marginLeft: \"auto\",\r\n },\r\n socialmediaButton: {\r\n marginLeft: 15,\r\n padding: 0,\r\n },\r\n socialmediaIcon: {\r\n fontSize: 28,\r\n color: \"#fff\",\r\n\r\n \"&:hover, &:focus\": {\r\n color: theme.palette.orange.main,\r\n }\r\n },\r\n socialmediaIconTwitter: {\r\n fontSize: 32,\r\n },\r\n }),\r\n);\r\n\r\nconst Footer = () => {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \"Bias\r\n\r\n
\r\n
\r\n About BiasProof\r\n |\r\n Privacy Policy\r\n
\r\n
\r\n Copyright © 2021 BiasProof. All rights reserved.\r\n
\r\n
\r\n
\r\n window.open('https://twitter.com/BiasProof', \"_blank\")}>\r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Footer;","import React from 'react';\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport Header from 'components/Header';\r\nimport Footer from 'components/Footer';\r\nimport { Container } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n mainLayoutRoot: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"stretch\",\r\n height: \"100%\",\r\n minHeight: \"100vh\",\r\n },\r\n content: {\r\n flexGrow: 1,\r\n overflow: \"hidden\",\r\n },\r\n maxWidth: {\r\n maxWidth: 1800,\r\n padding: \"0 24px\",\r\n margin: 'auto',\r\n }\r\n }),\r\n);\r\n\r\nexport interface IProps {\r\n children: any;\r\n nofooter?: boolean;\r\n}\r\n\r\nconst MainLayout = ({ children, nofooter = false }: IProps) => {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n {\r\n !nofooter &&\r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default MainLayout;","import { colors } from '@material-ui/core';\r\n\r\nconst black = '#000000';\r\nconst blackGrey = \"#202020\";\r\nconst orangeDark = \"#C84C04\";\r\nconst orangeDarker = \"#AF4103\";\r\nconst orangeLight = \"#EE6029\";\r\nconst orangeMain = \"#DB5205\";\r\nconst white = '#FFFFFF';\r\nconst whiteOff = '#f6f6f6';\r\n\r\ndeclare module '@material-ui/core/styles/createPalette' {\r\n interface Palette {\r\n orange: {\r\n main: React.CSSProperties['color']\r\n highlight: React.CSSProperties['color']\r\n dark: React.CSSProperties['color']\r\n dark1: React.CSSProperties['color']\r\n dark2: React.CSSProperties['color']\r\n dark3: React.CSSProperties['color']\r\n dark4: React.CSSProperties['color']\r\n },\r\n red: {\r\n main: React.CSSProperties['color']\r\n dark1: React.CSSProperties['color']\r\n dark2: React.CSSProperties['color']\r\n dark3: React.CSSProperties['color']\r\n dark4: React.CSSProperties['color']\r\n error: React.CSSProperties['color']\r\n },\r\n yellow: {\r\n main: React.CSSProperties['color']\r\n dark1: React.CSSProperties['color']\r\n dark2: React.CSSProperties['color']\r\n dark3: React.CSSProperties['color']\r\n dark4: React.CSSProperties['color']\r\n },\r\n green: {\r\n main: React.CSSProperties['color']\r\n dark1: React.CSSProperties['color']\r\n dark2: React.CSSProperties['color']\r\n dark3: React.CSSProperties['color']\r\n dark4: React.CSSProperties['color']\r\n },\r\n shades: {\r\n black: React.CSSProperties['color']\r\n white: React.CSSProperties['color']\r\n lightgrey: React.CSSProperties['color']\r\n grey: React.CSSProperties['color']\r\n greyMiddle: React.CSSProperties['color']\r\n grey2: React.CSSProperties['color']\r\n },\r\n system: {\r\n warning: React.CSSProperties['color']\r\n checkboxGreen: React.CSSProperties['color']\r\n modalGradientTop: React.CSSProperties['color']\r\n modalGradientBottom: React.CSSProperties['color']\r\n },\r\n }\r\n interface PaletteOptions {\r\n orange: {\r\n main: React.CSSProperties['color']\r\n highlight: React.CSSProperties['color']\r\n dark: React.CSSProperties['color']\r\n dark1: React.CSSProperties['color']\r\n dark2: React.CSSProperties['color']\r\n dark3: React.CSSProperties['color']\r\n dark4: React.CSSProperties['color']\r\n },\r\n red: {\r\n main: React.CSSProperties['color']\r\n dark1: React.CSSProperties['color']\r\n dark2: React.CSSProperties['color']\r\n dark3: React.CSSProperties['color']\r\n dark4: React.CSSProperties['color']\r\n error: React.CSSProperties['color']\r\n },\r\n yellow: {\r\n main: React.CSSProperties['color']\r\n dark1: React.CSSProperties['color']\r\n dark2: React.CSSProperties['color']\r\n dark3: React.CSSProperties['color']\r\n dark4: React.CSSProperties['color']\r\n },\r\n green: {\r\n main: React.CSSProperties['color']\r\n dark1: React.CSSProperties['color']\r\n dark2: React.CSSProperties['color']\r\n dark3: React.CSSProperties['color']\r\n dark4: React.CSSProperties['color']\r\n },\r\n shades: {\r\n black: React.CSSProperties['color']\r\n white: React.CSSProperties['color']\r\n grey: React.CSSProperties['color']\r\n greyMiddle: React.CSSProperties['color']\r\n grey2: React.CSSProperties['color']\r\n },\r\n system: {\r\n warning: React.CSSProperties['color']\r\n checkboxGreen: React.CSSProperties['color']\r\n modalGradientTop: React.CSSProperties['color']\r\n modalGradientBottom: React.CSSProperties['color']\r\n },\r\n }\r\n}\r\n\r\nexport default {\r\n black,\r\n orangeDark,\r\n orangeDarker,\r\n orangeLight,\r\n orangeMain,\r\n white,\r\n whiteOff,\r\n primary: {\r\n light: '#e15811',\r\n main: '#c8602a',\r\n dark: '#9C4A1B',\r\n contrastText: '#fff',\r\n },\r\n secondary: {\r\n light: '#6f6f6f',\r\n main: '#444',\r\n dark: '#1d1d1d',\r\n contrastText: '#fff',\r\n },\r\n success: {\r\n contrastText: white,\r\n dark: colors.green[900],\r\n main: colors.green[600],\r\n light: colors.green[400]\r\n },\r\n info: {\r\n contrastText: white,\r\n dark: colors.blue[900],\r\n main: colors.blue[600],\r\n light: colors.blue[400]\r\n },\r\n warning: {\r\n contrastText: white,\r\n dark: colors.orange[900],\r\n main: colors.orange[600],\r\n light: colors.orange[400]\r\n },\r\n error: {\r\n contrastText: white,\r\n dark: colors.red[900],\r\n main: colors.red[600],\r\n light: colors.red[400]\r\n },\r\n text: {\r\n primary: blackGrey,\r\n secondary: blackGrey,\r\n link: orangeDark,\r\n header: orangeMain\r\n },\r\n background: {\r\n paper: white\r\n },\r\n icon: orangeMain,\r\n divider: blackGrey,\r\n colors: {\r\n orangeDarker: orangeDarker,\r\n },\r\n orange: {\r\n main: '#c8602a',\r\n highlight: '#e15811',\r\n dark: '#7a340d',\r\n dark1: '#9C4A1B',\r\n dark2: '#7A380B',\r\n dark3: '#5A2400',\r\n dark4: '#330300',\r\n },\r\n red: {\r\n main: '#992c24',\r\n dark1: '#7A231D',\r\n dark2: '#601B16',\r\n dark3: '#491511',\r\n dark4: '#340F0C',\r\n error: '#d62b22'\r\n },\r\n yellow: {\r\n main: '#ad7a14',\r\n dark1: '#8A6210',\r\n dark2: '#6D4D0D',\r\n dark3: '#543C0A',\r\n dark4: '#3E2C07',\r\n },\r\n green: {\r\n main: '#8b971c',\r\n dark1: '#6C7616',\r\n dark2: '#525910',\r\n dark3: '#3B410C',\r\n dark4: '#272A08',\r\n },\r\n shades: {\r\n lightgrey: '#cccccc',\r\n black: '#1a1a1a',\r\n white: '#f2f2f2',\r\n grey: '#9e9e9e',\r\n greyMiddle: '#808080',\r\n grey2: '#737373',\r\n },\r\n system: {\r\n warning: '#d42c22',\r\n checkboxGreen: '#4FDB86',\r\n modalGradientTop: '#fff',\r\n modalGradientBottom: '#e5e5e5',\r\n },\r\n};\r\n","import palette from \"./palette\";\r\n\r\n\r\nexport default {\r\n fontFamily: [\r\n 'ff-tisa-sans-web-pro',\r\n 'Helvetica',\r\n 'Arial',\r\n 'sans-serif'\r\n ].join(', '),\r\n\r\n h1: {\r\n color: palette.text.primary,\r\n fontSize: \"2em\",\r\n fontWeight: 100,\r\n marginBottom:\"1rem\"\r\n },\r\n\r\n h2: {\r\n color: palette.text.primary,\r\n fontSize: \"1.5em\",\r\n fontWeight: 100,\r\n marginBottom:\"1rem\",\r\n marginTop:\"0\"\r\n },\r\n};\r\n","\r\nimport MuiCssBaseline from './MuiCssBaseline';\r\n\r\nexport default {\r\n MuiCssBaseline\r\n}","import palette from \"theme/palette\";\r\n\r\nexport default {\r\n \"@global\": {\r\n body: {\r\n backgroundColor: \"white\",\r\n },\r\n '.readonly .MuiInputBase-root.Mui-disabled': {\r\n color: `${palette.text.primary} !important`\r\n }\r\n }\r\n};\r\n","import { createMuiTheme } from '@material-ui/core';\r\nimport palette from './palette';\r\nimport typography from './typography';\r\nimport overrides from './overrides';\r\n\r\nconst theme = createMuiTheme({\r\n palette,\r\n typography,\r\n overrides,\r\n breakpoints: {\r\n values: {\r\n xs: 320,\r\n sm: 640,\r\n md: 800,\r\n lg: 1028,\r\n xl: 1456,\r\n }\r\n }\r\n});\r\n\r\ntheme.overrides = {\r\n ...theme.overrides,\r\n MuiButton: {\r\n ...theme.overrides?.MuiButton,\r\n root: {\r\n ...theme.overrides?.MuiButton?.root,\r\n\r\n textTransform: \"none\",\r\n },\r\n contained: {\r\n ...theme.overrides?.MuiButton?.contained,\r\n\r\n minHeight: 32,\r\n padding: \"0 1.5em\",\r\n color: \"#fff\",\r\n fontWeight: 700,\r\n backgroundColor: theme.palette.orange.main,\r\n border: \"2px solid #fff\",\r\n borderRadius: \"10em\",\r\n\r\n \"&:hover, &:focus\": {\r\n backgroundColor: theme.palette.orange.highlight,\r\n borderColor: \"#fff\",\r\n },\r\n },\r\n containedSizeLarge: {\r\n ...theme.overrides?.MuiButton?.containedSizeLarge,\r\n\r\n fontSize: \"1rem\",\r\n borderWidth: 4,\r\n },\r\n label: {\r\n ...theme.overrides?.MuiButton?.label,\r\n }\r\n },\r\n}\r\n\r\nexport default theme;","import React from \"react\";\r\nimport { makeStyles, Theme, createStyles } from \"@material-ui/core/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { useMediaQuery, Step, Stepper, StepButton, StepIcon, StepLabel } from \"@material-ui/core\";\r\nimport theme from \"../../../theme\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n sidePanel: {\r\n padding: `${theme.spacing(6)}px 0`,\r\n backgroundColor: \"transparent\",\r\n\r\n \"& .MuiStepConnector-vertical\": {\r\n marginLeft: 16,\r\n padding: 0,\r\n },\r\n\r\n \"& .MuiStepConnector-lineVertical\": {\r\n borderLeftWidth: 2,\r\n }\r\n },\r\n stepButton: {\r\n \"& .MuiSvgIcon-root\": {\r\n width: 32,\r\n height: 32,\r\n fontSize: 16,\r\n fontWeight: 900,\r\n border: \"2px solid #fff\",\r\n borderRadius: 100,\r\n boxSizing: \"border-box\",\r\n },\r\n\r\n \"& .MuiStepIcon-text\": {\r\n fontSize: \"inherit\",\r\n transform: \"translateY(0)\",\r\n },\r\n\r\n \"& .MuiStepLabel-label\": {\r\n color: theme.palette.shades.greyMiddle,\r\n fontSize: 16,\r\n fontWeight: 700,\r\n textAlign: \"left\",\r\n textTransform: \"uppercase\",\r\n\r\n \"&.MuiStepLabel-active\": {\r\n color: \"#000\",\r\n }\r\n },\r\n }\r\n })\r\n)\r\n\r\ninterface IProps {\r\n activeStep: number\r\n steps: string[]\r\n setActiveStep: (step: number) => void\r\n enableNavigation?: boolean\r\n}\r\n\r\nconst CustomStepper = ({ activeStep, steps, setActiveStep, enableNavigation = false }: IProps) => {\r\n const breakpoint1 = useMediaQuery(theme.breakpoints.up(\"sm\"));\r\n const breakpoint2 = useMediaQuery(theme.breakpoints.up(\"lg\"));\r\n const orientationValue = breakpoint1 ? (breakpoint2 ? \"vertical\" : \"horizontal\") : \"vertical\";\r\n\r\n const classes = useStyles();\r\n const [completed, setCompleted] = React.useState<{ [k: number]: boolean }>(\r\n {}\r\n );\r\n\r\n const totalSteps = () => {\r\n return steps.length;\r\n };\r\n\r\n const completedSteps = () => {\r\n return Object.keys(completed).length;\r\n };\r\n\r\n const setStep = (step: number) => {\r\n if (enableNavigation) setActiveStep(step);\r\n if (step < activeStep) setActiveStep(step);\r\n }\r\n\r\n return (\r\n \r\n {steps.map((label, index) => (\r\n \r\n setStep(index)}\r\n completed={completed[index]}\r\n className={classes.stepButton}\r\n >\r\n {label}\r\n \r\n \r\n ))}\r\n \r\n );\r\n}\r\n\r\nexport default CustomStepper;","const EMAILS_TEMPLATE_URI = encodeURI(\"data:text/csv;charset=utf-8,\" +\r\n [\r\n [\"user1@example.com\"],\r\n [\"user2@example.com\"],\r\n [\"user3@example.com\"],\r\n ].map(e => e.join(\",\")).join(\"\\n\"));\r\n\r\nconst useEmailsTemplateURI = () => {\r\n return {\r\n dataURL : EMAILS_TEMPLATE_URI\r\n }\r\n}\r\n\r\nexport default useEmailsTemplateURI;","const useEmailListValidation = (data: any) => {\r\n let result = [] as { email: string, validation: 'VALID' | 'DUPLICATE' | 'INVALID' }[]\r\n let valid = false\r\n\r\n // See https://emailregex.com/ for more details\r\n // eslint-disable-next-line\r\n const EMAIL_VALIDATION_REGEX = /^(([^<>()\\[\\]\\\\.,;:\\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,}))$/\r\n\r\n if (\r\n Array.isArray(data)\r\n && data.length > 0\r\n && data.every((row) => row.length === 1)\r\n ) {\r\n const emails = data.map(row => String(row[0]).trim().toLowerCase())\r\n const isValidEmail = emails.map(s => EMAIL_VALIDATION_REGEX.test(s))\r\n const isUnique = emails.map(s => emails.indexOf(s) === emails.lastIndexOf(s))\r\n result = emails.map((s, i) => {\r\n return {\r\n email: s,\r\n validation: isValidEmail[i] ? (isUnique[i] ? 'VALID' : 'DUPLICATE') : 'INVALID'\r\n }\r\n })\r\n valid = isValidEmail.every(Boolean) && isUnique.every(Boolean)\r\n }\r\n\r\n return {\r\n isValid: valid,\r\n result: result\r\n }\r\n}\r\n\r\nexport default useEmailListValidation;","import Papa from \"papaparse\";\r\nimport { useEffect, useState } from \"react\";\r\nimport useEmailListValidation from \"./useEmailListValidation\";\r\n\r\nconst useParticipantConfiguration = (maxNumOfParticipants: number | undefined, initData?: string[][]) => {\r\n const [uploadedFile, setUploadedFile] = useState(null);\r\n const [data, setData] = useState(initData ?? null)\r\n const { isValid, result: dataValidationResult } = useEmailListValidation(data)\r\n\r\n const handleInput = (e: React.FormEvent) => {\r\n const files = e.currentTarget.files ?? []\r\n const file = files.length === 1 ? files[0] : null;\r\n setUploadedFile(file)\r\n e.currentTarget.value = '';\r\n }\r\n\r\n useEffect(() => {\r\n if (uploadedFile) {\r\n Papa.parse(uploadedFile, {\r\n header: false,\r\n skipEmptyLines: true,\r\n complete: (results) => {\r\n setData(results.data);\r\n }\r\n });\r\n }\r\n }, [uploadedFile])\r\n\r\n return ({\r\n handleInput: handleInput,\r\n isUploaded: data && data.length > 0,\r\n isValid: isValid,\r\n isTooManyEmails: maxNumOfParticipants !== undefined ? dataValidationResult.length > maxNumOfParticipants : false,\r\n dataValidationResult: dataValidationResult\r\n })\r\n}\r\n\r\nexport default useParticipantConfiguration;","import React from 'react'\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n valid: { color: 'rgb(30, 70, 32)', backgroundColor: 'rgb(237, 247, 237)' },\r\n duplicate: { color: 'rgb(102, 60, 0)', backgroundColor: 'rgb(255, 244, 229)' },\r\n invalid: { color: 'rgb(97, 26, 21)', backgroundColor: 'rgb(253, 236, 234)' }\r\n }),\r\n);\r\n\r\ninterface IProps {\r\n data: 'VALID' | 'DUPLICATE' | 'INVALID'\r\n}\r\nconst EmailValidationResultCell = ({ data }: IProps) => {\r\n const classes = useStyles();\r\n\r\n switch (data) {\r\n case 'VALID':\r\n return VALID\r\n case 'DUPLICATE':\r\n return DUPLICATE\r\n case 'INVALID':\r\n return INVALID\r\n default:\r\n return null\r\n }\r\n}\r\n\r\nexport default EmailValidationResultCell","\r\nimport { createSelector } from \"@reduxjs/toolkit\";\r\nimport { IGroup, IGroupOverviewEmailConfiguration } from \"domain/group/types\";\r\nimport { IUiCurrentPlan, IUiState } from \"./uiSlice\";\r\nimport htmlToDraft from 'html-to-draftjs';\r\nimport { ContentState, convertToRaw } from \"draft-js\";\r\nimport moment from \"moment\";\r\nimport { BadgeResponseDTO } from \"external-api/account-api\";\r\nimport { EcomPlanDTO } from \"external-api/license-api\";\r\nimport { IDateTime } from \"domain/group/common/groupOverview/GroupOverview\";\r\nconst _getCurrentGroup = (state: { ui: IUiState }) => state.ui.group;\r\nconst _getCurrentPlan = (state: { ui: IUiState }) => state.ui.currentPlan;\r\nconst _getAllPlans = (state: { ui: IUiState }) => state.ui.plans;\r\nconst _getAllLogos = (state: { ui: IUiState }) => state.ui.logos;\r\nconst _getNotifications = (state: { ui: IUiState }) => state.ui.notifications;\r\n\r\nexport const getNotifications = createSelector(\r\n [_getNotifications],\r\n (notifications: any[]) => {\r\n return notifications;\r\n }\r\n)\r\n\r\nexport const getAllPlans = createSelector(\r\n [_getAllPlans],\r\n (plans: EcomPlanDTO[]) => {\r\n return plans;\r\n }\r\n)\r\n\r\nexport const getAllLogos = createSelector(\r\n [_getAllLogos],\r\n (logos: BadgeResponseDTO[]) => {\r\n return logos;\r\n }\r\n)\r\n\r\nexport const getCurrentGroup = createSelector(\r\n [_getCurrentGroup],\r\n (group: IGroup) => {\r\n return group\r\n }\r\n)\r\n\r\nexport const getCurrentGroupIsAnonymous = createSelector(\r\n [_getCurrentGroup],\r\n (group: IGroup) => {\r\n return group.anonymousUsers ?? false;\r\n }\r\n)\r\n\r\nexport const getCurrentGroupParticipants = createSelector(\r\n [_getCurrentGroup],\r\n (group: IGroup) => {\r\n return group.participants ?? [];\r\n }\r\n)\r\n\r\nexport const getCurrentGroupAnonLinks = createSelector(\r\n [_getCurrentGroup],\r\n (group: IGroup) => {\r\n return group.anonymousLinks?.map(link => link.url) ?? [];\r\n }\r\n)\r\n\r\nexport const getCurrentGroupSlotsUsed = createSelector(\r\n [_getCurrentGroup],\r\n (group: IGroup) => {\r\n return group.numberOfSlotsUsed;\r\n }\r\n)\r\n\r\nexport const getCurrentGroupPlanConfiguration = createSelector(\r\n [_getCurrentGroup],\r\n (group: IGroup) => {\r\n return group.planConfiguration;\r\n }\r\n)\r\n\r\nexport const getCurrentGroupOverview = createSelector(\r\n [_getCurrentGroup],\r\n (group: IGroup) => {\r\n const invitationBlocksFromHtml = htmlToDraft(group.emailConfiguration?.invitationEmailBody as string ?? \"\");\r\n const { contentBlocks: invitationBlocks, entityMap: invitationEntity } = invitationBlocksFromHtml;\r\n const invitationContentState = ContentState.createFromBlockArray(invitationBlocks, invitationEntity);\r\n const invitationEditorState = convertToRaw(invitationContentState);\r\n\r\n const reminderBlocksFromHtml = htmlToDraft(group.emailConfiguration?.reminderEmailBody as string ?? \"\");\r\n const { contentBlocks, entityMap } = reminderBlocksFromHtml;\r\n const contentState = ContentState.createFromBlockArray(contentBlocks, entityMap);\r\n const reminderEditorState = convertToRaw(contentState);\r\n\r\n const localDates = group?.emailConfiguration?.invitationDates.map(x => {\r\n return {\r\n dateTime: moment.utc(x.dateTime as string).local().toDate(),\r\n initialLoaded: x.initialLoaded\r\n } as IDateTime\r\n }) ?? [];\r\n\r\n return {\r\n name: group.name,\r\n description: group.description,\r\n emailConfiguration: {\r\n ...group.emailConfiguration,\r\n invitationEmailBody: invitationEditorState,\r\n reminderEmailBody: reminderEditorState,\r\n invitationDates: localDates\r\n }\r\n } as IGroupOverviewEmailConfiguration;\r\n }\r\n)\r\n\r\nexport const getIsPlanSelectionStarted = createSelector(\r\n [_getCurrentPlan],\r\n (currentPlan: IUiCurrentPlan) => {\r\n return currentPlan.change === \"PLAN_SELECTION_STARTED\";\r\n }\r\n);\r\n\r\nexport const getIsPlanSelectionCompleted = createSelector(\r\n [_getCurrentPlan],\r\n (currentPlan: IUiCurrentPlan) => {\r\n return currentPlan.change === \"PLAN_SELECTION_COMPLETED\";\r\n }\r\n);\r\n\r\nexport const getIsPlanUpgradeStarted = createSelector(\r\n [_getCurrentPlan],\r\n (currentPlan: IUiCurrentPlan) => {\r\n return currentPlan.change === \"UPGRADE_STARTED\";\r\n }\r\n);\r\n\r\nexport const getIsPlanUpgradeCompleted = createSelector(\r\n [_getCurrentPlan],\r\n (currentPlan: IUiCurrentPlan) => {\r\n return currentPlan.change === \"UPGRADE_COMPLETED\";\r\n }\r\n);\r\n\r\nexport const getIsPlanUpgradeForMoreEmailsRequested = createSelector(\r\n [_getCurrentPlan],\r\n (currentPlan: IUiCurrentPlan) => {\r\n return currentPlan.planUpgradeForMoreEmails === \"REQUESTED\";\r\n }\r\n);\r\n\r\nexport const getIsPlanUpgradeForMoreEmailsCompleted = createSelector(\r\n [_getCurrentPlan],\r\n (currentPlan: IUiCurrentPlan) => {\r\n return currentPlan.planUpgradeForMoreEmails === \"COMPLETED\";\r\n }\r\n);\r\n\r\nexport const getIsPlanUpgradeForMoreEmailsCanceled = createSelector(\r\n [_getCurrentPlan],\r\n (currentPlan: IUiCurrentPlan) => {\r\n return currentPlan.planUpgradeForMoreEmails === \"CANCELED\";\r\n }\r\n);\r\n\r\nexport const getIsPlanUpgradeForMoreEmailsNotNeeded = createSelector(\r\n [_getCurrentPlan],\r\n (currentPlan: IUiCurrentPlan) => {\r\n return currentPlan.planUpgradeForMoreEmails === \"NOT_NEEDED\";\r\n }\r\n);","import { Button, createStyles, Grid, makeStyles, Theme } from \"@material-ui/core\";\r\nimport React, { memo } from \"react\";\r\n\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n button: {\r\n borderWidth: \"2px\",\r\n textTransform: \"none\",\r\n marginTop: theme.spacing(1),\r\n marginLeft: theme.spacing(1),\r\n }\r\n }),\r\n);\r\n\r\ninterface IProps {\r\n label: string;\r\n onClick?: (args: any) => any\r\n disabled?: boolean\r\n type?: \"button\" | \"reset\" | \"submit\" | undefined\r\n secondary?: boolean\r\n className?: any\r\n}\r\n\r\n\r\n\r\nconst CustomButton = ({ label, onClick, disabled = false, type = \"button\", secondary = false, className }: IProps) => {\r\n const classes = useStyles();\r\n if (secondary) return (\r\n {label}\r\n )\r\n return (\r\n {label}\r\n\r\n );\r\n};\r\n\r\nexport default CustomButton;","import { Button, createStyles, Grid, makeStyles, Theme } from \"@material-ui/core\";\r\nimport CustomButton from \"components/CustomButton\";\r\nimport React, { memo } from \"react\";\r\n\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n buttonContainer: {\r\n textAlign: \"end\"\r\n }\r\n }),\r\n);\r\n\r\ninterface IProps {\r\n nextStep?: () => void\r\n prevStep?: () => void\r\n isNextDisabled?: boolean\r\n isFirstStep?: boolean\r\n isLastStep?: boolean\r\n hasForm?: boolean\r\n isEdit?: boolean\r\n}\r\n\r\nconst GroupNavigation = ({ nextStep, prevStep, isNextDisabled = false, isFirstStep = false, isLastStep = false, hasForm = false, isEdit = false }: IProps) => {\r\n const classes = useStyles();\r\n\r\n function renderNextButton() {\r\n if (hasForm && isEdit) return (\r\n \r\n )\r\n if (isEdit) return (\r\n \r\n )\r\n if (isLastStep && nextStep) return (\r\n \r\n )\r\n if (hasForm) return (\r\n \r\n )\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n {!isFirstStep && !isEdit &&\r\n \r\n }\r\n {renderNextButton()}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default memo(GroupNavigation);","\r\nimport { ConfigurationParameters, GroupApi, Configuration, GroupDTO, GroupOverviewDTO } from \"external-api/license-api\";\r\n\r\nimport http from \"./axiosService\";\r\nimport Cookies from \"js-cookie\";\r\nimport { trackPromise } from \"react-promise-tracker\";\r\nimport { CookieNames } from \"utils/constants\";\r\nimport { getToken } from \"utils/cookieHelper\";\r\n\r\nconst apiUrl = `${process.env.REACT_APP_LICENSE_API_URL}`;\r\n\r\nfunction getApi() {\r\n const token = getToken();\r\n const configParams: ConfigurationParameters = {\r\n basePath: apiUrl,\r\n baseOptions: {\r\n headers:\r\n {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n };\r\n\r\n const configuration = new Configuration(configParams);\r\n\r\n const axios = http.axios;\r\n return new GroupApi(configuration, apiUrl, axios);\r\n}\r\n\r\nexport default class GroupService {\r\n\r\n groupApi: GroupApi\r\n\r\n constructor() {\r\n this.groupApi = getApi();\r\n }\r\n addGroup = async (groupData: GroupDTO) => {\r\n const resp = await trackPromise(this.groupApi.groupAddGroup(groupData));\r\n return resp.data;\r\n }\r\n\r\n getGroups = async () => {\r\n const resp = await trackPromise(this.groupApi.groupGetGroups());\r\n return resp.data;\r\n }\r\n\r\n getGroupsResults = async () => {\r\n const resp = await trackPromise(this.groupApi.groupGetGroupsWithResults());\r\n return resp.data;\r\n }\r\n\r\n getGroup = async (id: string) => {\r\n const resp = await trackPromise(this.groupApi.groupGetGroup(id));\r\n return resp.data;\r\n }\r\n\r\n updateGroupOverview = async (groupId: string, groupData: GroupOverviewDTO) => {\r\n const resp = await trackPromise(this.groupApi.groupUpdateGroupOverview(groupId, groupData));\r\n return resp.data;\r\n }\r\n\r\n deleteGroup = async (id: string) => {\r\n const resp = await trackPromise(this.groupApi.groupDeleteGroup(id));\r\n return resp.data;\r\n }\r\n}","\r\nimport { ConfigurationParameters, Configuration, ParticipantApi, ParticipantsDTO } from \"external-api/license-api\";\r\nimport Cookies from \"js-cookie\";\r\nimport { trackPromise } from \"react-promise-tracker\";\r\nimport { CookieNames } from \"utils/constants\";\r\nimport { getToken } from \"utils/cookieHelper\";\r\n\r\nimport http from \"./axiosService\";\r\nconst apiUrl = `${process.env.REACT_APP_LICENSE_API_URL}`;\r\n\r\nfunction getApi() {\r\n const token = getToken();\r\n const configParams: ConfigurationParameters = {\r\n basePath: apiUrl,\r\n baseOptions: {\r\n headers:\r\n {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n };\r\n const axios = http.axios;\r\n const configuration = new Configuration(configParams);\r\n return new ParticipantApi(configuration, apiUrl, axios);\r\n}\r\n\r\nexport default class ParticipantService {\r\n participantApi: ParticipantApi\r\n constructor() {\r\n this.participantApi = getApi();\r\n }\r\n\r\n updateGroupParticipants = async (groupId: string, participants: string[]) => {\r\n const payload: ParticipantsDTO = {\r\n groupId: groupId,\r\n participants: participants\r\n };\r\n const resp = await trackPromise(this.participantApi.participantUpdateParticipants(payload));\r\n return resp.data;\r\n }\r\n\r\n}","import { navigate } from \"@reach/router\";\r\nimport {\r\n createAsyncThunk,\r\n createSlice,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\nimport moment from \"moment\";\r\nimport { IGroup } from \"domain/group/types\";\r\nimport { CourseConfigurationDTO, EmailConfigurationDTO, GroupDTO, GroupOverviewDTO, GroupResultsDTO, GroupStatus, ParticipantsDTO, PlanConfigurationDTO, TestConfigurationDTO } from \"external-api/license-api\";\r\n\r\nimport GroupService from \"services/groupService\";\r\nimport ParticipantService from \"services/participantService\";\r\nimport { IApplicationState, ValidationErrors } from \"store\";\r\nimport { enqueueNotification } from \"store/ui/uiSlice\";\r\nimport { tryRefreshTokenAction } from \"store/user/userSlice\";\r\nimport { Paths } from \"utils/constants\";\r\nimport { handleAuthErrors } from \"utils/errorHandling\";\r\n\r\nexport interface IGroupState {\r\n groupList: GroupResultsDTO[]\r\n groupData: GroupDTO[]\r\n}\r\n\r\nconst initialState: IGroupState = {\r\n groupList: [],\r\n groupData: []\r\n}\r\n\r\nconst addGroup = createAsyncThunk<\r\n GroupDTO,\r\n undefined,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/groups/add\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, getState, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n\r\n const { ui, plan } = getState();\r\n const { group } = ui;\r\n\r\n const utcDates = group.emailConfiguration?.invitationDates.map(x => x.dateTime as string) ?? [];\r\n const emailConfiguration: EmailConfigurationDTO = {\r\n reminderEmailBody: group.emailConfiguration?.reminderEmailBody as string,\r\n reminderEmailSubject: group.emailConfiguration?.reminderEmailSubject,\r\n invitationEmailSubject: group.emailConfiguration?.invitationEmailSubject,\r\n invitationEmailBody: group.emailConfiguration?.invitationEmailBody as string,\r\n numberOfReminders: group.emailConfiguration?.numberOfReminders ?? 0,\r\n daysBetweenReminders: group.emailConfiguration?.daysBetweenReminders ?? 0,\r\n invitationalEmailDates: utcDates ?? []\r\n };\r\n\r\n const planConfigurationDTO: PlanConfigurationDTO = {\r\n name: group.planConfiguration?.name,\r\n testConfiguration: group.planConfiguration?.testConfiguration?.map(x => {\r\n return {\r\n categoryId: x.categoryId,\r\n id: x.id\r\n } as TestConfigurationDTO\r\n }),\r\n courseConfiguration: group.planConfiguration?.courseConfiguration?.map(x => {\r\n return {\r\n categoryId: x.categoryId,\r\n id: x.id,\r\n courseModuleIds: x.courseModuleIds?.map(x => x.moduleId)\r\n } as CourseConfigurationDTO\r\n })\r\n };\r\n\r\n const participantsDTO: string[] = group.participants ?? [];\r\n\r\n const groupDTO: GroupDTO = {\r\n status: GroupStatus.NUMBER_0,\r\n name: group.name,\r\n description: group.description,\r\n numberOfSlotsUsed: participantsDTO.length,\r\n planConfiguration: planConfigurationDTO,\r\n participants: participantsDTO,\r\n anonymousUsers: Boolean(group.anonymousUsers),\r\n emailConfiguration: emailConfiguration\r\n };\r\n\r\n const service = new GroupService();\r\n const resData: GroupDTO = await service.addGroup(groupDTO);\r\n const metaData: GroupResultsDTO = {\r\n id: resData.id,\r\n name: resData.name,\r\n numberOfSlotsUsed: resData.numberOfSlotsUsed\r\n };\r\n\r\n dispatch(appendGroupMeta(metaData));\r\n\r\n dispatch(enqueueNotification({\r\n message: 'Successfully added group',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n\r\n navigate(Paths.GROUPS)\r\n return resData;\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\nconst updateGroupOverview = createAsyncThunk<\r\n GroupOverviewDTO,\r\n undefined,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/groups/update-overview\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch, getState } = thunkAPI;\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n const { ui } = getState();\r\n const currentGroup = ui.group;\r\n\r\n const utcDates = currentGroup.emailConfiguration?.invitationDates.map(x => x.dateTime as string) ?? [];\r\n\r\n const groupOverviewDTO: GroupOverviewDTO = {\r\n id: currentGroup.id,\r\n name: currentGroup.name,\r\n emailConfiguration: {\r\n invitationEmailBody: currentGroup.emailConfiguration?.invitationEmailBody as string,\r\n invitationEmailSubject: currentGroup.emailConfiguration?.invitationEmailSubject,\r\n reminderEmailBody: currentGroup.emailConfiguration?.reminderEmailBody as string,\r\n reminderEmailSubject: currentGroup.emailConfiguration?.reminderEmailSubject,\r\n daysBetweenReminders: currentGroup.emailConfiguration?.daysBetweenReminders ?? 0,\r\n numberOfReminders: currentGroup.emailConfiguration?.numberOfReminders ?? 0,\r\n invitationalEmailDates: utcDates\r\n }\r\n };\r\n\r\n const service = new GroupService();\r\n const resData: GroupOverviewDTO = await service.updateGroupOverview(currentGroup.id!, groupOverviewDTO);\r\n\r\n\r\n dispatch(enqueueNotification({\r\n message: 'Successfully updated group overview',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n\r\n return resData;\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\nconst updateGroupParticipants = createAsyncThunk<\r\n ParticipantsDTO,\r\n undefined,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/groups/update-participants\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch, getState } = thunkAPI;\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n const { ui } = getState();\r\n const currentGroup = ui.group;\r\n\r\n const participants: string[] = currentGroup.participants ?? [];\r\n\r\n const service = new ParticipantService();\r\n const resData: ParticipantsDTO = await service.updateGroupParticipants(currentGroup.id!, participants);\r\n\r\n\r\n dispatch(enqueueNotification({\r\n message: 'Successfully updated participant list',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n return resData;\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\n\r\nconst getGroup = createAsyncThunk<\r\n GroupDTO,\r\n string,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/groups/get\",\r\n async (groupId, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n\r\n await dispatch(tryRefreshTokenAction());\r\n\r\n const service = new GroupService();\r\n let resData: GroupDTO = await service.getGroup(groupId);\r\n const returnData = {\r\n ...resData,\r\n emailConfiguration: {\r\n ...resData.emailConfiguration,\r\n invitationalEmailDates: resData.emailConfiguration?.invitationalEmailDates?.map(x => {\r\n // const newDate = moment.utc(x).local().format(\"YYYY/MM/DD HH:mm:ss\");\r\n const newDate = moment(x).toISOString()\r\n return newDate;\r\n }) ?? []\r\n }\r\n }\r\n return returnData as GroupDTO;\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\nconst getAllGroups = createAsyncThunk<\r\n GroupResultsDTO[],\r\n boolean,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/groups/get-all\",\r\n async (includeResults, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n\r\n await dispatch(tryRefreshTokenAction());\r\n const service = new GroupService();\r\n const resData: GroupResultsDTO[] = includeResults ? await service.getGroupsResults() : await service.getGroups();\r\n\r\n return resData;\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\nconst groupSlice = createSlice({\r\n name: \"@@group\",\r\n initialState,\r\n reducers: {\r\n updateGroupMeta(state, action: PayloadAction) {\r\n state.groupList = state.groupList.map(x => {\r\n if (x.id !== action.payload.id) return x;\r\n return action.payload;\r\n });\r\n },\r\n appendGroupMeta(state, action: PayloadAction) {\r\n state.groupList.push(action.payload);\r\n },\r\n },\r\n extraReducers: builder => {\r\n builder.addCase(getAllGroups.fulfilled, (state, action) => {\r\n state.groupList = action.payload;\r\n });\r\n builder.addCase(addGroup.fulfilled, (state, action) => {\r\n state.groupData.push(action.payload);\r\n });\r\n builder.addCase(getGroup.fulfilled, (state, action) => {\r\n const index = state.groupData.findIndex(x => x.id === action.payload.id);\r\n if (index === -1) state.groupData.push(action.payload);\r\n else {\r\n state.groupData = state.groupData.map(x => {\r\n if (x.id !== action.payload.id) return x;\r\n return action.payload;\r\n });\r\n }\r\n });\r\n builder.addCase(updateGroupParticipants.fulfilled, (state, action) => {\r\n const index = state.groupData.findIndex(x => x.id === action.payload.groupId);\r\n if (index) {\r\n state.groupData[index].numberOfSlotsUsed = action.payload.participants?.length ?? 0;\r\n state.groupData[index].participants = action.payload.participants;\r\n }\r\n });\r\n }\r\n});\r\n\r\nexport {\r\n getAllGroups,\r\n addGroup,\r\n getGroup,\r\n updateGroupOverview,\r\n updateGroupParticipants\r\n}\r\n\r\nexport const {\r\n appendGroupMeta,\r\n updateGroupMeta\r\n} = groupSlice.actions\r\n\r\nexport default groupSlice.reducer;","import { createStyles, Grid, makeStyles, Theme, Typography, Box, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Button } from \"@material-ui/core\";\r\nimport React, { memo } from \"react\";\r\nimport CustomButton from 'components/CustomButton';\r\nimport GroupNavigation from \"./GroupNavigation\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { addGroup } from \"store/group/groupSlice\";\r\nimport { IGroupOverviewEmailConfiguration, IPlanConfiguration } from \"../types\";\r\nimport moment from \"moment\";\r\nimport { navigate } from \"@reach/router\";\r\nimport { Paths } from \"utils/constants\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n },\r\n title: {\r\n fontWeight: 700,\r\n textTransform: \"uppercase\",\r\n },\r\n titleUnderlined: {\r\n margin: \"40px 0 0 0\",\r\n padding: \"0 15px 5px 15px\",\r\n fontWeight: 700,\r\n textTransform: \"uppercase\",\r\n borderBottom: `1px solid ${theme.palette.shades.grey}`,\r\n },\r\n box: {\r\n padding: \"10px 15px\",\r\n },\r\n label: {\r\n margin: \"0 0 5px 0\",\r\n color: theme.palette.orange.main,\r\n fontSize: 12,\r\n fontWeight: 700,\r\n },\r\n text: {\r\n margin: \"0 0 10px 0\",\r\n fontSize: 16,\r\n fontWeight: 700,\r\n },\r\n table: {\r\n\r\n },\r\n theadhead: {\r\n paddingTop: 5,\r\n paddingBottom: 5,\r\n color: theme.palette.orange.main,\r\n fontSize: 12,\r\n fontWeight: 700,\r\n border: \"none\",\r\n },\r\n tcell: {\r\n paddingTop: 5,\r\n paddingBottom: 5,\r\n fontSize: 16,\r\n fontWeight: 700,\r\n border: \"none\",\r\n },\r\n buttonDiscard: {\r\n margin: \"10px auto\",\r\n display: \"flex\",\r\n fontSize: 16,\r\n fontWeight: 700,\r\n textTransform: \"uppercase\",\r\n },\r\n buttonCustom: {\r\n margin: \"10px auto !important\",\r\n padding: \"0 3.5em\",\r\n display: \"flex\",\r\n },\r\n buttonBack: {\r\n margin: \"0 0 30px auto\",\r\n display: \"flex\",\r\n fontSize: 16,\r\n fontWeight: 700,\r\n textTransform: \"uppercase\",\r\n },\r\n buttonBackIcon: {\r\n flex: \"0 0 auto\",\r\n display: \"inline-block\",\r\n width: 7.41,\r\n height: 12,\r\n marginRight: \"0.5em\",\r\n color: \"inherit\",\r\n },\r\n }),\r\n);\r\n\r\ninterface IProps {\r\n nextStep: () => void\r\n prevStep?: () => void\r\n overview: IGroupOverviewEmailConfiguration\r\n participants: string[]\r\n planConfiguration: IPlanConfiguration\r\n}\r\n\r\nconst GroupOverview = ({ nextStep, prevStep, overview, participants, planConfiguration }: IProps) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n async function handleNext() {\r\n await dispatch(addGroup());\r\n }\r\n\r\n function onDiscard() {\r\n navigate(Paths.GROUPS);\r\n }\r\n\r\n return (\r\n \r\n \r\n  \r\n \r\n \r\n Confirmation\r\n Overview\r\n \r\n Group Name:\r\n {overview.name}\r\n\r\n Description:\r\n \r\n {overview.description}\r\n \r\n \r\n\r\n Tests And Training\r\n\r\n \r\n \r\n \r\n \r\n Test Name:\r\n Training Modules:\r\n \r\n \r\n \r\n {planConfiguration.testConfiguration?.map(x => {\r\n const associatedCourse = planConfiguration?.courseConfiguration?.find(y => y.categoryId === x.categoryId);\r\n return (\r\n \r\n {x.testName}\r\n {associatedCourse?.courseModuleIds?.length ?? 0}\r\n \r\n )\r\n })}\r\n \r\n
\r\n
\r\n\r\n Email List\r\n \r\n Number of Participants:\r\n {participants.length}\r\n \r\n\r\n Invitations And Reminders\r\n \r\n Invite Dates:\r\n {overview.emailConfiguration?.invitationDates.map(x => {\r\n return (\r\n {moment(x.dateTime).format(\"LL\")}\r\n )\r\n })}\r\n\r\n Number of Reminders:\r\n {overview.emailConfiguration?.numberOfReminders}\r\n\r\n Days Between Reminders:\r\n {overview.emailConfiguration?.daysBetweenReminders ?? 0}\r\n \r\n \r\n \r\n Discard\r\n \r\n
\r\n\r\n \r\n  \r\n \r\n\r\n \r\n \r\n\r\n Take some time to review the details of your group. Once you are happy with your new group, press the Save Group button below.\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default memo(GroupOverview);","import { TextField, makeStyles, Theme, InputAdornment } from \"@material-ui/core\";\r\nimport { AccountCircle } from \"@material-ui/icons\";\r\nimport React from \"react\";\r\nimport { FC } from \"react\";\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nexport interface InputProps {\r\n name: string;\r\n inputRef?: any;\r\n type?: \"text\" | \"email\" | \"password\";\r\n label?: string;\r\n placeholder?: string;\r\n error?: boolean;\r\n helperText?: string;\r\n rows?: number;\r\n disabled?: boolean;\r\n fullWidth?: boolean;\r\n multiline?: boolean;\r\n readonly?: boolean;\r\n onEdit?: () => any\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n\r\n \"& .MuiInputLabel-root\": {\r\n position: \"relative\",\r\n padding: \"0 0 0.5em 1.25em\",\r\n color: theme.palette.orange.main,\r\n fontSize: 12,\r\n fontWeight: 700,\r\n transform: \"none\",\r\n },\r\n\r\n \"& .MuiOutlinedInput-multiline\": {\r\n padding: \"0.5em 1em\",\r\n },\r\n },\r\n rootInput: {\r\n \"& .MuiOutlinedInput-notchedOutline\": {\r\n border: \"2px solid \" + theme.palette.orange.main,\r\n borderRadius: \"1em\",\r\n\r\n \"& legend\": {\r\n width: 0,\r\n }\r\n },\r\n },\r\n input: {\r\n height: \"2em\",\r\n padding: \"0 1em\",\r\n\r\n \"&::placeholder\": {\r\n fontStyle: \"italic\",\r\n }\r\n },\r\n inputMultiline: {\r\n minHeight: \"8.2em\",\r\n padding: 0,\r\n },\r\n editIcon: {\r\n color: \"#9e9e9e\",\r\n fontSize: \"1em\",\r\n cursor: \"pointer\"\r\n }\r\n}));\r\n\r\nconst FormInput: FC = ({\r\n name,\r\n inputRef,\r\n type = \"text\",\r\n label,\r\n placeholder,\r\n error,\r\n helperText,\r\n rows = 1,\r\n onEdit,\r\n disabled = false,\r\n fullWidth = true,\r\n multiline = false,\r\n readonly = false\r\n}) => {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default FormInput;","import { createStyles, makeStyles } from \"@material-ui/core\";\r\nimport React from \"react\";\r\n\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport { convertToRaw } from 'draft-js';\r\nimport '../../../../node_modules/react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport { Controller } from \"react-hook-form\";\r\n\r\n\r\nconst useStyles = makeStyles(() =>\r\n createStyles({\r\n richTextWrapper: {\r\n minheight: \"200px\"\r\n },\r\n richTextArea: {\r\n },\r\n richTextToolBar: {\r\n\r\n },\r\n richTextEditor: {\r\n padding: \"0 1rem\"\r\n }\r\n }),\r\n);\r\n\r\ninterface IProps {\r\n name: string\r\n control: any\r\n}\r\n\r\nconst options = {\r\n options: ['inline', 'blockType', 'fontSize', 'fontFamily', 'list', 'textAlign'],\r\n};\r\n\r\n\r\nconst RichTextEditor = ({ name, control }: IProps) => {\r\n const classes = useStyles();\r\n const editor = React.useRef(null);\r\n\r\n return (\r\n <>\r\n {\r\n return (\r\n {\r\n return props.onChange(\r\n convertToRaw(editorState.getCurrentContent())\r\n );\r\n }}\r\n placeholder=\"Write something!\"\r\n wrapperClassName={classes.richTextWrapper}\r\n toolbarClassName={classes.richTextToolBar}\r\n editorClassName={classes.richTextEditor}\r\n toolbar={options}\r\n />\r\n )\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default RichTextEditor;\r\n","\r\nimport React from \"react\";\r\n\r\nimport { Grid, withStyles } from '@material-ui/core';\r\nimport MuiCard from '@material-ui/core/Card';\r\n\r\nconst Card = withStyles({\r\n root: {\r\n borderRadius: 12,\r\n margin: \"auto\",\r\n transition: \"0.3s\",\r\n boxShadow: \"0 8px 40px -12px rgba(0,0,0,0.5)\",\r\n \"&:hover\": {\r\n boxShadow: \"0 16px 70px -12.125px rgba(0,0,0,0.3)\"\r\n },\r\n height: \"100%\",\r\n width: \"100%\",\r\n padding: \"20px\",\r\n marginBottom: \"10px\"\r\n }\r\n})(MuiCard);\r\n\r\ninterface IProps {\r\n children: any\r\n onClick?: (arg: any) => any\r\n}\r\nconst CustomCard = ({ children, onClick }: IProps) => {\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default CustomCard;","import React, { useState } from \"react\"\r\nimport { Button, createStyles, List, ListItem, ListItemText, TextField, Theme, Typography, makeStyles } from \"@material-ui/core\";\r\nimport { Controller } from \"react-hook-form\";\r\nimport moment, { Moment } from 'moment';\r\nimport CustomButton from \"./CustomButton\";\r\nimport { IDateTime } from \"domain/group/common/groupOverview/GroupOverview\";\r\n\r\nimport { MobileDateTimePicker, DesktopDateTimePicker } from '@material-ui/pickers';\r\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n customButton: {\r\n width: '100%',\r\n backgroundColor: \"#c8602a\",\r\n color: \"white\",\r\n fontSize: \"0.875rem\",\r\n lineHeight: '1.75',\r\n border: '0px',\r\n cursor: 'pointer',\r\n padding: '6px 16px',\r\n textTransform: 'uppercase',\r\n boxShadow: '0px 3px 1px -2px rgb(0 0 0 / 20%), 0px 2px 2px 0px rgb(0 0 0 / 14%), 0px 1px 5px 0px rgb(0 0 0 / 12%)',\r\n '&:hover': {\r\n backgroundColor: '#b54308',\r\n borderColor: '#b54308',\r\n boxShadow: 'none',\r\n },\r\n },\r\n focusedDate: {\r\n border: \"1px solid #c8602a\",\r\n },\r\n dateTimeContainer: {\r\n marginTop: \"10px\"\r\n },\r\n dateTimeButtonContainer: {\r\n marginBottom: \"30px\"\r\n },\r\n dateRemoveIcon: {\r\n position: \"relative\",\r\n top: \"5px\",\r\n cursor: \"pointer\",\r\n fontSize: \"20px\",\r\n width: \"10%\"\r\n },\r\n datePickerInput: {\r\n width: \"90%\"\r\n }\r\n })\r\n);\r\n\r\ninterface IProps {\r\n inline?: boolean\r\n value?: IDateTime\r\n onChange: any\r\n index?: number\r\n deleteDate: (index: number) => void\r\n}\r\n\r\nconst CustomDatePicker = ({ onChange, deleteDate, value, index, inline = false }: IProps) => {\r\n const [open, setOpen] = useState(false);\r\n\r\n const classes = useStyles();\r\n const isPastNow = moment(value?.dateTime).isSameOrBefore(moment());\r\n\r\n return (\r\n <>\r\n {inline ?\r\n
\r\n setOpen(true)}\r\n />\r\n setOpen(true)}\r\n onClose={() => setOpen(false)}\r\n value={value?.dateTime}\r\n minutesStep={15}\r\n onChange={() => { }}\r\n onAccept={(x: any) => {\r\n const addedDate: IDateTime = {\r\n dateTime: x?.toISOString(),\r\n initialLoaded: false\r\n }\r\n onChange(addedDate)\r\n }}\r\n showToolbar={true}\r\n renderInput={(props) => <>}\r\n />\r\n
\r\n :\r\n setOpen(false)\r\n }>\r\n
\r\n {index === 0 ? \"First Date\" : \"Next Date\"}\r\n setOpen(false)}\r\n onOpen={() => setOpen(true)}\r\n open={open}\r\n value={value?.dateTime}\r\n onChange={() => { }}\r\n onAccept={(x: any) => {\r\n const addedDate: IDateTime = {\r\n dateTime: x?.toISOString(),\r\n initialLoaded: false\r\n }\r\n onChange(index, addedDate);\r\n }}\r\n renderInput={(props) => }\r\n />\r\n {(!isPastNow || !value?.initialLoaded) && deleteDate(index!)} className={classes.dateRemoveIcon} />}\r\n
\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default CustomDatePicker","import React, { FC } from \"react\";\r\nimport { Controller } from \"react-hook-form\";\r\nimport { FormControl, FormHelperText, InputLabel, makeStyles, MenuItem, Select, Theme } from \"@material-ui/core\";\r\n\r\nexport interface SelectProps {\r\n label: string;\r\n id?: string;\r\n defaultValue?: any;\r\n name: string;\r\n options: { value: any, label: string }[];\r\n control: any;\r\n error?: boolean;\r\n helperText?: string;\r\n withoutMargin?: boolean;\r\n readonly?: boolean;\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n\r\n \"& .MuiInputBase-root\": {\r\n height: \"2em\",\r\n },\r\n\r\n \"& .MuiSelect-nativeInput\": {\r\n height: \"100%\",\r\n padding: 0,\r\n border: \"none\",\r\n },\r\n\r\n \"& .MuiOutlinedInput-notchedOutline\": {\r\n border: \"2px solid \" + theme.palette.orange.main,\r\n borderRadius: \"1em\",\r\n }\r\n },\r\n sel_container: {\r\n margin: 0,\r\n },\r\n sel_container_m: {\r\n margin: 0,\r\n },\r\n select: {\r\n padding: \"0 1em\",\r\n lineHeight: \"2em\",\r\n borderRadius: \"1em !important\",\r\n },\r\n label: {\r\n position: \"relative\",\r\n padding: \"0 0 0.5em 1.25em\",\r\n color: theme.palette.orange.main,\r\n fontSize: 12,\r\n fontWeight: 700,\r\n transform: \"none !important\",\r\n },\r\n}));\r\n\r\nconst FormSelect: FC = ({\r\n label,\r\n id,\r\n defaultValue,\r\n name,\r\n options,\r\n control,\r\n error,\r\n helperText,\r\n withoutMargin,\r\n readonly = false\r\n}) => {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {label}\r\n (\r\n <>\r\n \r\n {helperText}\r\n \r\n )}\r\n id={id}\r\n name={name}\r\n control={control}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default FormSelect;","import { UnpackNestedValue, useForm } from 'react-hook-form';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\n\r\nexport default function useValidForm(onSubmitFunc: (arg: TData) => void, validationSchema?: any, defaultValues?: TData, shouldUnregister = true) {\r\n const { handleSubmit, ...methods } = useForm({\r\n resolver: validationSchema ? yupResolver(validationSchema) : undefined,\r\n defaultValues: defaultValues as UnpackNestedValue,\r\n shouldUnregister: shouldUnregister,\r\n mode: \"onChange\",\r\n reValidateMode: 'onChange',\r\n });\r\n\r\n return {\r\n onSubmit: handleSubmit(onSubmitFunc as UnpackNestedValue),\r\n handleSubmit,\r\n ...methods\r\n }\r\n}","\r\nimport useValidForm from \"hooks/useValidForm\";\r\nimport { IGroupOverviewEmailConfiguration } from \"../../types\";\r\nimport htmlToDraft from 'html-to-draftjs';\r\nimport * as yup from 'yup';\r\nimport { useEffect } from \"react\";\r\nimport { ContentState, EditorState } from \"draft-js\";\r\n\r\nconst validationSchema = yup.object().shape({\r\n name: yup.string().required('Name is required'),\r\n description: yup.string(),\r\n emailConfiguration: yup.object().shape({\r\n invitationEmailSubject: yup.string().required('Email Subject is required'),\r\n // invitationDates: yup.array().min(1, \"At least one date must be added\")\r\n })\r\n // status: yup.string().required('Status is required'),\r\n // plan: yup.string().required('Plan is required'),\r\n})\r\n\r\ninterface IProps {\r\n onSubmitFunc: (data: IGroupOverviewEmailConfiguration) => void\r\n data: IGroupOverviewEmailConfiguration\r\n}\r\n\r\nexport const useGroupOverviewForm = ({ onSubmitFunc, data }: IProps) => {\r\n useEffect(() => {\r\n form.reset(data);\r\n }, [data]);\r\n\r\n const defaultValues: IGroupOverviewEmailConfiguration = {\r\n name: data.name ?? \"\",\r\n description: data.description ?? \"\",\r\n emailConfiguration: {\r\n invitationDates: data.emailConfiguration?.invitationDates ?? [],\r\n numberOfReminders: data.emailConfiguration?.numberOfReminders ?? 0,\r\n daysBetweenReminders: data.emailConfiguration?.daysBetweenReminders ?? 0,\r\n invitationEmailSubject: data.emailConfiguration?.invitationEmailSubject ?? \"\",\r\n invitationEmailBody: data.emailConfiguration?.invitationEmailBody ?? \"\",\r\n reminderEmailSubject: data.emailConfiguration?.reminderEmailSubject ?? \"\",\r\n reminderEmailBody: data.emailConfiguration?.reminderEmailBody ?? \"\",\r\n }\r\n };\r\n\r\n const form = useValidForm(onSubmitFunc, validationSchema, defaultValues, false);\r\n\r\n return {\r\n form\r\n }\r\n}\r\n\r\n","import { createStyles, Grid, makeStyles, Typography } from \"@material-ui/core\";\r\nimport React, { memo, useState } from \"react\";\r\nimport FormInput from \"components/formComponents/form-input\";\r\nimport GroupNavigation from \"../GroupNavigation\";\r\nimport { IGroupOverviewEmailConfiguration } from \"../../types\";\r\nimport RichTextEditor from \"../RichTextEditor\";\r\nimport CustomCard from \"components/CustomCard\";\r\nimport CustomDatePicker from \"components/CustomDatePicker\";\r\n\r\nimport FormSelect from \"components/formComponents/form-select\";\r\nimport { useGroupOverviewForm } from \"./useGroupOverviewForm\";\r\nimport moment from \"moment\";\r\nimport { DateObject } from \"react-multi-date-picker\";\r\nimport CustomButton from \"components/CustomButton\";\r\nconst useStyles = makeStyles(() =>\r\n createStyles({\r\n groupOverviewRoot: {\r\n },\r\n label: {\r\n lineHeight: '2em',\r\n }\r\n }),\r\n);\r\n\r\ninterface IProps {\r\n handleSubmit: (formValues: IGroupOverviewEmailConfiguration) => void\r\n nextStep: () => void\r\n prevStep?: () => void\r\n groupId?: string\r\n data: IGroupOverviewEmailConfiguration\r\n}\r\n\r\nconst numberOfReminders = [\r\n {\r\n value: 0,\r\n label: \"0\"\r\n },\r\n {\r\n value: 1,\r\n label: \"1\"\r\n },\r\n {\r\n value: 2,\r\n label: \"2\"\r\n },\r\n {\r\n value: 3,\r\n label: \"3\"\r\n },\r\n {\r\n value: 4,\r\n label: \"4\"\r\n },\r\n {\r\n value: 5,\r\n label: \"5\"\r\n }\r\n]\r\n\r\nexport interface IDateTime {\r\n dateTime: string | Date\r\n initialLoaded: boolean\r\n}\r\n\r\nconst GroupOverview = ({ handleSubmit, nextStep, prevStep, data, groupId }: IProps) => {\r\n const onSubmitFunc = async (formValues: IGroupOverviewEmailConfiguration) => {\r\n const finalValues: IGroupOverviewEmailConfiguration = {\r\n ...formValues,\r\n emailConfiguration: {\r\n ...formValues.emailConfiguration!,\r\n invitationDates: invitationDates?.map(x => {\r\n return {\r\n dateTime: x.dateTime,\r\n initialLoaded: x.initialLoaded\r\n }\r\n }) || []\r\n }\r\n }\r\n await handleSubmit(finalValues);\r\n if (!groupId) nextStep();\r\n }\r\n const { form } = useGroupOverviewForm({ onSubmitFunc, data });\r\n const { errors, register, onSubmit, formState, control } = form;\r\n\r\n const savedDates = data.emailConfiguration?.invitationDates.map(x => {\r\n return { dateTime: x.dateTime as string, initialLoaded: x.initialLoaded }\r\n }) || [];\r\n\r\n const [invitationDates, setInvitationDates] = useState(savedDates);\r\n\r\n const { isValid } = formState;\r\n\r\n function renderReminderDelays() {\r\n const reminderOptions = [{ value: 1, label: `1 day` }];\r\n for (let i = 2; i <= 30; i++) {\r\n reminderOptions.push({ value: i, label: `${i} days` });\r\n }\r\n return reminderOptions;\r\n }\r\n\r\n function addDate(date: IDateTime) {\r\n\r\n\r\n\r\n setInvitationDates((state) => {\r\n const newDates = [...state, date]\r\n let sortedDates = newDates.sort(function (a, b) {\r\n // Turn your strings into dates, and then subtract them\r\n // to get a value that is either negative, positive, or zero.\r\n return new Date(a.dateTime).getTime() - new Date(b.dateTime).getTime();\r\n });\r\n return sortedDates\r\n });\r\n }\r\n\r\n function editDate(index: number, date: IDateTime) {\r\n const newDates = [...invitationDates];\r\n newDates[index] = date;\r\n\r\n let sortedDates = newDates.sort(function (a, b) {\r\n // Turn your strings into dates, and then subtract them\r\n // to get a value that is either negative, positive, or zero.\r\n return new Date(a.dateTime).getTime() - new Date(b.dateTime).getTime();\r\n });\r\n\r\n setInvitationDates(sortedDates);\r\n }\r\n\r\n function deleteDate(index: number) {\r\n const dates = [...invitationDates];\r\n const updatedDate = dates.splice(index, 1);\r\n setInvitationDates(dates);\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n Overview\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Invitation Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Invitation dates*\r\n \r\n \r\n {invitationDates.map((date, index) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n Reminder Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Set up Reminders\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n );\r\n};\r\n\r\nexport default memo(GroupOverview);","import { DocumentNode, useQuery } from \"@apollo/client\";\r\n\r\nexport default function useContentfulQuery(query: DocumentNode, variables?: Omit) {\r\n const options = { variables: { preview: process.env.NODE_ENV !== 'production', ...variables } } as unknown as V\r\n return useQuery(query, options);\r\n}","import React from 'react'\r\nimport { Box } from '@material-ui/core'\r\n\r\nconst ContentfulLoading = () => {\r\n return Fetching data from the CMS...\r\n}\r\n\r\nexport default ContentfulLoading","import React from 'react'\r\nimport { Box } from '@material-ui/core'\r\n\r\nconst ContentfulError = () => {\r\n return Encountered error while fetching data from the CMS...\r\n}\r\n\r\nexport default ContentfulError","import { makeStyles } from \"@material-ui/core\";\r\nimport React from \"react\";\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n },\r\n});\r\n\r\nexport type IContentfulAsset = {\r\n sys: {\r\n id: string | null\r\n }\r\n title: string | null\r\n contentType: string | null\r\n url: string | null\r\n __typename: string | null\r\n}\r\n\r\nconst ContentfulAsset = ({ title, contentType, url }: IContentfulAsset) => {\r\n const classes = useStyles();\r\n\r\n function renderAssetType() {\r\n const assetType = contentType?.split('/')[0]\r\n switch (assetType) {\r\n case \"video\": {\r\n return (\r\n \r\n )\r\n }\r\n case \"image\": {\r\n return \r\n }\r\n default: {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {renderAssetType()}\r\n \r\n )\r\n}\r\n\r\nexport default ContentfulAsset","import React, { ReactNode } from 'react'\r\nimport { createStyles, Grid, makeStyles, Typography } from '@material-ui/core';\r\nimport { documentToReactComponents } from '@contentful/rich-text-react-renderer';\r\n\r\nimport { BLOCKS, Inline, Block } from '@contentful/rich-text-types';\r\nimport ContentfulAsset, { IContentfulAsset } from 'components/contentful/ContentfulAsset';\r\nconst useStyles = makeStyles((theme) =>\r\n createStyles({\r\n\r\n })\r\n);\r\n\r\n\r\ninterface IProps {\r\n data: any\r\n}\r\n// -- get course details\r\nconst ContentfulRichText = ({ data }: IProps) => {\r\n const classes = useStyles();\r\n\r\n const assetBlockMap = new Map(\r\n data?.links?.assets?.block?.map((asset: { sys: { id: any; }; }) => [asset.sys.id, asset]),\r\n );\r\n\r\n const entryBlockMap = new Map(\r\n data?.links?.entries?.block?.map((entry: { sys: { id: any; }; }) => [entry.sys.id, entry]),\r\n );\r\n const options = {\r\n renderMark: {\r\n },\r\n renderNode: {\r\n [BLOCKS.PARAGRAPH]: (node: Block | Inline, children: ReactNode) => {children},\r\n [BLOCKS.HEADING_1]: (node: Block | Inline, children: ReactNode) => {children} as ReactNode,\r\n [BLOCKS.HEADING_2]: (node: Block | Inline, children: ReactNode) => {children} as ReactNode,\r\n [BLOCKS.HEADING_3]: (node: Block | Inline, children: ReactNode) => {children} as ReactNode,\r\n [BLOCKS.HEADING_4]: (node: Block | Inline, children: ReactNode) => {children} as ReactNode,\r\n [BLOCKS.HEADING_5]: (node: Block | Inline, children: ReactNode) => {children} as ReactNode,\r\n [BLOCKS.HEADING_6]: (node: Block | Inline, children: ReactNode) => {children} as ReactNode,\r\n [BLOCKS.EMBEDDED_ASSET]: (node: any) => {\r\n const asset = assetBlockMap.get(node.data.target.sys.id) as IContentfulAsset;\r\n return as ReactNode\r\n },\r\n [BLOCKS.EMBEDDED_ENTRY]: (node: Block | Inline) => {\r\n switch (node.data.target.__typename) {\r\n }\r\n return <> as ReactNode\r\n },\r\n },\r\n }\r\n return (\r\n <>\r\n {data && data.json && documentToReactComponents(data.json, options)}\r\n \r\n )\r\n}\r\n\r\nexport default ContentfulRichText;","import React from 'react'\r\nimport { Checkbox, CheckboxProps, createStyles, Grid, List, ListItemIcon, ListItemText, makeStyles, MenuItem, Typography, withStyles } from '@material-ui/core';\r\nimport clsx from 'clsx';\r\nimport AddRoundedIcon from '@material-ui/icons/AddRounded';\r\nimport RemoveRoundedIcon from '@material-ui/icons/RemoveRounded';\r\n\r\nconst useStyles = makeStyles((theme) =>\r\n createStyles({\r\n root: {\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n icon: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n backgroundColor: theme.palette.shades.lightgrey,\r\n width: 32,\r\n height: 32,\r\n minWidth: 0,\r\n color: \"#fff\",\r\n lineHeight: 1,\r\n textAlign: \"center\",\r\n background: theme.palette.primary.main,\r\n border: \"3px solid #fff\",\r\n borderRadius: \"35px\",\r\n boxShadow: \"0 5px 5px 0 rgba(0,0,0,0.25)\",\r\n boxSizing: \"border-box\",\r\n '&:before': {\r\n content: '\"\"',\r\n display: 'block',\r\n width: 13.5,\r\n height: 15,\r\n margin: \"auto\",\r\n\r\n },\r\n\r\n '$root.Mui-focusVisible &': {\r\n outline: '2px auto rgba(19,124,189,.6)',\r\n outlineOffset: 2,\r\n },\r\n\r\n 'input:hover ~ &': {\r\n backgroundColor: theme.palette.shades.grey2,\r\n },\r\n\r\n 'input:disabled ~ &': {\r\n boxShadow: 'none',\r\n background: 'rgba(206,217,224,.5)',\r\n },\r\n },\r\n checkedIcon: {\r\n backgroundColor: theme.palette.primary.main,\r\n\r\n 'input:hover ~ &': {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n },\r\n })\r\n);\r\n\r\n// -- get course details\r\nconst StyledCheckBox = (props: CheckboxProps) => {\r\n const classes = useStyles();\r\n const { checked, ...others } = props;\r\n\r\n return (\r\n }\r\n icon={}\r\n inputProps={{ 'aria-label': 'Add course' }}\r\n checked={checked}\r\n {...others}\r\n />\r\n );\r\n}\r\n\r\nexport default StyledCheckBox;","import React from 'react'\r\nimport { Checkbox, createStyles, Grid, List, ListItemIcon, ListItemText, makeStyles, MenuItem, Typography, withStyles, IconButton, ListItemSecondaryAction, Button } from '@material-ui/core';\r\nimport { GetCourseDetails } from 'types/GetCourseDetails';\r\nimport CustomButton from 'components/CustomButton';\r\nimport { useCourseModuleData } from './useCourseModuleData';\r\nimport { useCourseModuleStepper } from './useCourseModuleStepper';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport ContentfulRichText from 'components/contentful/ContenfulRichText';\r\nimport StyledCheckBox from './components/StyledCheckBox';\r\nimport { Controller } from 'react-hook-form';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { Close } from '@material-ui/icons';\r\nimport CustomCard from 'components/CustomCard';\r\n\r\nconst useStyles = makeStyles((theme) =>\r\n createStyles({\r\n coursePreviewModal: {\r\n position: 'absolute',\r\n display: 'grid',\r\n grid: 'auto auto auto / auto 562px',\r\n gridTemplateAreas: '\"header header\" \"list content\" \"footer footer\"',\r\n top: '50%',\r\n left: '50%',\r\n width: theme.breakpoints.values.xl,\r\n height: '85%',\r\n maxWidth: 960,\r\n maxHeight: 720,\r\n minHeight: 600,\r\n margin: 0,\r\n padding: 0,\r\n background: \"#fff\",\r\n borderRadius: 20,\r\n boxShadow: '10px 10px 10px rgba(0,0,0,0.25)',\r\n overflow: 'hidden',\r\n transform: 'translate(-50%, -50%)',\r\n },\r\n heading: {\r\n gridArea: 'header',\r\n margin: 0,\r\n padding: 25,\r\n fontWeight: 500,\r\n textTransform: 'uppercase',\r\n },\r\n close: {\r\n position: \"absolute\",\r\n top: 12,\r\n right: 12,\r\n padding: 1,\r\n color: \"#fff\",\r\n fontWeight: 700,\r\n background: \"#9d9d9d\",\r\n border: \"2px solid #fff\",\r\n boxShadow: \"0 4px 2px rgba(0,0,0,0.25)\",\r\n\r\n \"&:hover, &:focus\": {\r\n background: theme.palette.shades.grey,\r\n }\r\n },\r\n list: {\r\n padding: '0 25px',\r\n overflow: 'auto',\r\n\r\n '& .MuiList-root': {\r\n paddingRight: 0,\r\n },\r\n },\r\n listText: {\r\n marginBottom: 20,\r\n fontSize: 14,\r\n lineHeight: 1.15,\r\n },\r\n richTextPreview: {\r\n padding: \"0 25px\",\r\n overflow: 'auto',\r\n\r\n \"& video\": {\r\n marginBottom: 20,\r\n },\r\n\r\n },\r\n footer: {\r\n gridArea: 'footer',\r\n padding: 20,\r\n textAlign: 'center',\r\n },\r\n done: {\r\n display: \"flex\",\r\n margin: \"0 0 0 auto !important\",\r\n },\r\n listContainer: {\r\n display: \"flex\"\r\n },\r\n customCard: {\r\n width: \"auto\",\r\n margin: \"0 6px\",\r\n padding: \"10px 20px\",\r\n backgroundColor: '#fff',\r\n boxShadow: \"0px 1px 4px 1px rgba(0,0,0,0.25)\",\r\n borderRadius: 6,\r\n overflow: \"hidden\",\r\n }\r\n })\r\n);\r\n\r\n\r\nconst StyledMenuItem = withStyles((theme) => ({\r\n root: {\r\n marginTop: 5,\r\n marginBottom: 5,\r\n marginRight: 10,\r\n paddingRight: 0,\r\n backgroundColor: theme.palette.shades.white,\r\n border: \"2px solid transparent\",\r\n borderRadius: 6,\r\n boxShadow: '4px 4px 12px -3px rgba(0,0,0,0.50)',\r\n flexGrow: 1,\r\n '&.checked': {\r\n borderColor: theme.palette.primary.main,\r\n boxShadow: '0px 0px 0px 0px rgba(0,0,0,0.25)',\r\n // border: `2px solid ${theme.palette.primary.main}`,\r\n },\r\n\r\n '&:focus': {\r\n backgroundColor: theme.palette.shades.grey2,\r\n '& .MuiListItemIcon-root, & .MuiListItemText-primary': {\r\n\r\n },\r\n },\r\n '&.Mui-selected': {\r\n backgroundColor: theme.palette.shades.lightgrey,\r\n\r\n '&.checked': {\r\n borderColor: theme.palette.primary.main,\r\n }\r\n },\r\n '&:hover': {\r\n '&.Mui-selected': {\r\n backgroundColor: theme.palette.shades.lightgrey,\r\n\r\n }\r\n },\r\n\r\n '& .MuiTypography-root': {\r\n lineHeight: 1.15,\r\n }\r\n },\r\n}))(MenuItem);\r\n\r\ninterface IProps {\r\n data: GetCourseDetails\r\n onChildClick: any\r\n ref: any\r\n}\r\n// -- get course details\r\nconst CourseModulePreview = React.forwardRef(({ data, onChildClick, ref }: IProps) => {\r\n const classes = useStyles();\r\n const { activeModuleIndex, courseData, courseModules, selectModule, activeModuleContent, setActiveModule, activeModuleId } = useCourseModuleData(data);\r\n const { append, removeModule, isSelected, selectedCourseModules, control } = useCourseModuleStepper(courseData?.sys?.id!, activeModuleId);\r\n\r\n function toggleModule(moduleId: string) {\r\n if (moduleId && selectedCourseModules) {\r\n if (selectedCourseModules.some(x => x.moduleId === moduleId)) {\r\n removeModule(moduleId);\r\n }\r\n else {\r\n append({ moduleId });\r\n }\r\n }\r\n }\r\n\r\n function removeAllModules(event: any) {\r\n selectedCourseModules?.forEach(mod => removeModule(mod.moduleId));\r\n // handleClose(event);\r\n }\r\n\r\n function handleClose(event: any) {\r\n onChildClick(event.target.name);\r\n }\r\n\r\n return (\r\n
\r\n {courseData?.courseTitle}\r\n \r\n \r\n \r\n
\r\n Please select your course modules. You can preview the content of each module on the right panel. \r\n Click To Preview Add\r\n < hr />\r\n\r\n \r\n {courseModules && courseModules.map((module, index) => {\r\n const checked = selectedCourseModules?.some(x => x.moduleId === module?.sys?.id!);\r\n return (\r\n
\r\n selectModule(index)} >\r\n \r\n \r\n\r\n toggleModule(module?.sys?.id!)}\r\n />\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n\r\n
\r\n
\r\n {activeModuleContent?.title}\r\n
\r\n {activeModuleContent &&\r\n \r\n }\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n})\r\n\r\nexport default CourseModulePreview;","import { useState } from \"react\";\r\nimport { GetCourseDetails } from \"types/GetCourseDetails\";\r\n\r\nexport const useCourseModuleData = (data: GetCourseDetails) => {\r\n const courseData = data?.courseCollection && data?.courseCollection.items[0];\r\n const courseModules = courseData?.courseModulesCollection?.items ?? [];\r\n const [activeModuleIndex, setActiveModule] = useState(0);\r\n const activeModuleContent = courseModules[activeModuleIndex];\r\n const activeModuleId = activeModuleContent?.sys.id ?? \"\";\r\n\r\n function selectModule(id: number) {\r\n setActiveModule(id);\r\n }\r\n\r\n return {\r\n activeModuleIndex,\r\n courseData,\r\n courseModules,\r\n activeModuleContent,\r\n activeModuleId,\r\n setActiveModule,\r\n selectModule\r\n }\r\n}","import { IPlanConfiguration } from \"domain/group/types\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useFieldArray, useFormContext, useWatch } from \"react-hook-form\";\r\n\r\nexport const useCourseModuleStepper = (courseId: string, activeModuleId: string) => {\r\n const { control, getValues } = useFormContext();\r\n const [index, setIndex] = useState(0);\r\n\r\n useEffect(() => {\r\n if (courseId) {\r\n const { courseConfiguration } = getValues();\r\n const courseIndex = courseConfiguration?.findIndex(x => x.id === courseId) ?? 0;\r\n setIndex(courseIndex);\r\n }\r\n }, [courseId])\r\n\r\n const selectedCourseModules = useWatch<{ moduleId: string }[]>({\r\n control: control,\r\n name: `courseConfiguration[${index}].courseModuleIds`\r\n });\r\n const fieldArrayProps = useFieldArray(\r\n {\r\n control: control,\r\n name: `courseConfiguration[${index}].courseModuleIds`,\r\n keyName: \"fieldId\"\r\n }\r\n );\r\n\r\n function removeModule(moduleId: string) {\r\n const { courseConfiguration } = getValues();\r\n if (courseConfiguration) {\r\n const selectedModules = courseConfiguration[index].courseModuleIds as unknown as { moduleId: string }[];\r\n const moduleIndex = selectedModules.findIndex(x => x.moduleId === moduleId);\r\n fieldArrayProps.remove(moduleIndex);\r\n }\r\n }\r\n\r\n return {\r\n ...fieldArrayProps,\r\n selectedCourseModules,\r\n getValues,\r\n control,\r\n removeModule,\r\n isSelected: selectedCourseModules?.some(x => x.moduleId === activeModuleId) ?? false\r\n }\r\n}","import React from 'react'\r\nimport { gql } from \"@apollo/client\";\r\nimport { CardActionArea, CardContent, createStyles, IconButton, makeStyles, Modal, Typography } from '@material-ui/core';\r\nimport useContentfulQuery from 'hooks/useContentfulQuery';\r\nimport ContentfulLoading from 'components/contentful-loading';\r\nimport ContentfulError from 'components/contentful-error';\r\n\r\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\r\nimport CustomCard from 'components/CustomCard';\r\nimport CourseModulePreview from './CourseModulePreview';\r\nimport { GetCourseDetails, GetCourseDetailsVariables } from 'types/GetCourseDetails';\r\nimport { useCoursePreviewModal } from './useCoursePreviewModal';\r\n\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport { Close } from '@material-ui/icons';\r\n\r\nconst useStyles = makeStyles((theme) =>\r\n createStyles({\r\n close: {\r\n position: \"absolute\",\r\n top: 8,\r\n right: 8,\r\n padding: 1,\r\n color: \"#fff\",\r\n fontWeight: 700,\r\n background: \"#ccc\",\r\n border: \"2px solid #fff\",\r\n boxShadow: \"0 4px 2px rgba(0,0,0,0.25)\",\r\n\r\n \"&:hover, &:focus\": {\r\n background: theme.palette.shades.grey,\r\n }\r\n },\r\n })\r\n);\r\n\r\n\r\nconst GET_COURSE_DETAILS = gql`\r\n query GetCourseDetails($preview: Boolean!, $courseLimit: Int!, $courseModuleLimit: Int!, $courseIds: [String!]!) {\r\n courseCollection(preview: $preview, limit: $courseLimit, where: {sys: {id_in: $courseIds}}) {\r\n items {\r\n sys {\r\n id\r\n }\r\n title\r\n courseTitle\r\n slug\r\n category {\r\n label\r\n sys {\r\n id\r\n }\r\n }\r\n courseModulesCollection(limit: $courseModuleLimit) {\r\n items {\r\n sys {\r\n id\r\n }\r\n title\r\n hrAdminPreviewContent {\r\n json\r\n links {\r\n assets {\r\n block {\r\n ... on Asset {\r\n sys {\r\n id\r\n }\r\n title\r\n contentType\r\n url\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } \r\n`;\r\n\r\ninterface IProps {\r\n courseId: string\r\n categoryId: string\r\n isSelected: boolean\r\n addCourse: (arg: any) => any\r\n removeCourse: (arg: any) => any\r\n}\r\n\r\n// -- get course details\r\nconst CourseDetails = ({ courseId, categoryId, isSelected, addCourse, removeCourse }: IProps) => {\r\n const { loading, error, data } = useContentfulQuery(GET_COURSE_DETAILS, { courseLimit: 5, courseModuleLimit: 10, courseIds: [courseId] });\r\n const { open, handleOpen, handleClose } = useCoursePreviewModal();\r\n const classes = useStyles();\r\n\r\n function onModalOpen() {\r\n addCourse({ courseId, categoryId });\r\n handleOpen();\r\n }\r\n\r\n function onModalClose() {\r\n removeCourse(courseId);\r\n handleClose();\r\n }\r\n\r\n if (loading) return ;\r\n if (error) return ;\r\n if (!data) return null;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {data?.courseCollection?.items && data?.courseCollection?.items[0]?.courseTitle}\r\n \r\n {isSelected ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CourseDetails;","import { useState } from \"react\";\r\n\r\nexport const useCoursePreviewModal = () => {\r\n const [open, setOpen] = useState(false);\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n return {\r\n handleOpen,\r\n handleClose,\r\n open\r\n }\r\n}","import React from 'react'\r\nimport { gql } from \"@apollo/client\";\r\nimport { createStyles, Grid, makeStyles } from '@material-ui/core';\r\nimport useContentfulQuery from 'hooks/useContentfulQuery';\r\nimport ContentfulLoading from 'components/contentful-loading';\r\nimport ContentfulError from 'components/contentful-error';\r\nimport { GetAllCoursesList, GetAllCoursesListVariables } from 'types/GetAllCoursesList';\r\n\r\nimport CourseDetails from './CourseDetails';\r\nimport { useCoursePlans } from './useCoursePlans';\r\n\r\nconst useStyles = makeStyles(() =>\r\n createStyles({\r\n trainingPlanRoot: {\r\n },\r\n })\r\n);\r\n\r\nconst GET_ALL_COURSES_LIST = gql`\r\n query GetAllCoursesList($preview: Boolean!) {\r\n courseCollection(preview: $preview) {\r\n items {\r\n sys {\r\n id\r\n }\r\n courseTitle\r\n slug\r\n category {\r\n label\r\n sys {\r\n id\r\n }\r\n }\r\n }\r\n }\r\n } \r\n`;\r\n\r\ninterface IProps {\r\n}\r\n\r\nconst CoursePlans = ({ }: IProps) => {\r\n const classes = useStyles();\r\n const { loading, error, data } = useContentfulQuery(GET_ALL_COURSES_LIST, { courseLimit: 5, courseModuleLimit: 10 })\r\n\r\n const { form, categories, append, remove, fields, selectedCourses } = useCoursePlans({ data });\r\n\r\n function addCourse({ courseId, categoryId }: { courseId: string, categoryId: string }) {\r\n const {courseConfiguration} = form.getValues();\r\n const courseData = courseConfiguration?.find(x => x.id === courseId);\r\n if (!courseData) {\r\n append({\r\n id: courseId,\r\n categoryId: categoryId,\r\n courseModuleIds: []\r\n });\r\n }\r\n }\r\n\r\n function removeCourse(id: string) {\r\n const {courseConfiguration} = form.getValues();\r\n const courseData = courseConfiguration?.find(x => x.id === id);\r\n if (courseData?.courseModuleIds?.length === 0) {\r\n const index = fields.findIndex(x => x.id === id);\r\n remove(index);\r\n }\r\n }\r\n\r\n if (loading) return ;\r\n if (error) return ;\r\n if (!data) return null;\r\n // -- render courses based on form.\r\n return (\r\n \r\n {categories && categories.map((item, index) => {\r\n return (\r\n \r\n x.id === item?.sys?.id!) ?? false}\r\n categoryId={item?.category?.sys?.id!}\r\n addCourse={addCourse}\r\n removeCourse={removeCourse}\r\n courseId={item?.sys?.id!}\r\n />\r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n\r\nexport default CoursePlans;","\r\nimport * as yup from 'yup';\r\nimport { ICourseConfiguration, IPlanConfiguration, ITestConfiguration } from \"domain/group/types\";\r\nimport { useFieldArray, useFormContext, useWatch } from \"react-hook-form\";\r\nimport { GetAllCoursesList } from \"types/GetAllCoursesList\";\r\n\r\nconst validationSchema = yup.object().shape({\r\n})\r\n\r\ninterface IProps {\r\n data: GetAllCoursesList | undefined\r\n}\r\n\r\nexport const useCoursePlans = ({ data }: IProps) => {\r\n const form = useFormContext();\r\n\r\n const selectedTests = useWatch({\r\n control: form.control,\r\n name: 'testConfiguration'\r\n });\r\n\r\n const categoryIds = selectedTests?.map(x => x.categoryId ?? \"\");\r\n\r\n const fieldArrayProps = useFieldArray(\r\n {\r\n control: form.control,\r\n name: \"courseConfiguration\",\r\n keyName: \"fieldId\"\r\n }\r\n );\r\n\r\n const selectedCourses = useWatch<{ id: string, categoryId: string }[]>({\r\n control: form.control,\r\n name: \"courseConfiguration\"\r\n });\r\n\r\n return {\r\n form,\r\n categories: data?.courseCollection?.items?.filter(x => categoryIds?.includes(x?.category?.sys?.id!)) ?? [],\r\n ...fieldArrayProps,\r\n selectedCourses\r\n }\r\n}\r\n","import React from 'react'\r\nimport { createStyles, Grid, List, ListItemText, ListItemIcon, makeStyles, MenuItem, Typography, withStyles, IconButton, Button } from '@material-ui/core';\r\nimport CustomButton from 'components/CustomButton';\r\nimport { GetSurveyDetails } from 'types/GetSurveyDetails';\r\nimport { useTestSelection } from './useTestSelection';\r\nimport { useTestSelectionData } from './useTestSelectionData';\r\nimport ContentfulRichText from 'components/contentful/ContenfulRichText';\r\nimport StyledCheckBox from '../training/components/StyledCheckBox';\r\nimport { Close } from '@material-ui/icons';\r\n\r\nconst useStyles = makeStyles((theme) =>\r\n createStyles({\r\n coursePreviewModal: {\r\n position: 'absolute',\r\n display: 'grid',\r\n grid: 'min-content auto min-content / auto 562px',\r\n gridTemplateAreas: '\"header header\" \"list content\" \"footer footer\"',\r\n top: '50%',\r\n left: '50%',\r\n width: theme.breakpoints.values.xl,\r\n height: '85%',\r\n maxWidth: 960,\r\n maxHeight: 720,\r\n minHeight: 600,\r\n margin: 0,\r\n padding: 0,\r\n background: \"#fff\",\r\n borderRadius: 20,\r\n boxShadow: '10px 10px 10px rgba(0,0,0,0.25)',\r\n overflow: 'hidden',\r\n transform: 'translate(-50%, -50%)',\r\n },\r\n heading: {\r\n gridArea: 'header',\r\n margin: 0,\r\n padding: 25,\r\n fontWeight: 500,\r\n textTransform: 'uppercase',\r\n },\r\n close: {\r\n position: \"absolute\",\r\n top: 12,\r\n right: 12,\r\n padding: 1,\r\n color: \"#fff\",\r\n fontWeight: 700,\r\n background: \"#9d9d9d\",\r\n border: \"2px solid #fff\",\r\n boxShadow: \"0 4px 2px rgba(0,0,0,0.25)\",\r\n\r\n \"&:hover, &:focus\": {\r\n background: theme.palette.shades.grey,\r\n }\r\n },\r\n list: {\r\n padding: '0 25px',\r\n overflow: 'auto',\r\n\r\n '& .MuiList-root': {\r\n paddingRight: 0,\r\n },\r\n },\r\n listText: {\r\n marginBottom: 20,\r\n fontSize: 14,\r\n lineHeight: 1.15,\r\n },\r\n richTextPreview: {\r\n padding: \"0 25px\",\r\n overflow: 'auto'\r\n },\r\n footer: {\r\n gridArea: 'footer',\r\n marginTop: \"auto\",\r\n padding: 20,\r\n textAlign: 'center',\r\n },\r\n listContainer: {\r\n display: \"flex\"\r\n },\r\n customCard: {\r\n width: \"auto\",\r\n margin: \"0 6px\",\r\n padding: \"10px 20px\",\r\n backgroundColor: '#fff',\r\n boxShadow: \"0px 1px 4px 1px rgba(0,0,0,0.25)\",\r\n borderRadius: 6,\r\n overflow: \"hidden\",\r\n }\r\n })\r\n);\r\n\r\n\r\nconst StyledMenuItem = withStyles((theme) => ({\r\n root: {\r\n flexGrow: 1,\r\n marginTop: 5,\r\n marginBottom: 5,\r\n marginRight: 10,\r\n paddingRight: 0,\r\n backgroundColor: theme.palette.shades.white,\r\n border: \"2px solid transparent\",\r\n borderRadius: 6,\r\n boxShadow: '4px 4px 12px -3px rgba(0,0,0,0.50)',\r\n '&.checked': {\r\n borderColor: theme.palette.primary.main,\r\n boxShadow: '0px 0px 0px 0px rgba(0,0,0,0.25)',\r\n },\r\n\r\n '&:focus': {\r\n backgroundColor: theme.palette.shades.grey2,\r\n '& .MuiListItemIcon-root, & .MuiListItemText-primary': {\r\n color: theme.palette.common.white,\r\n },\r\n },\r\n '&.Mui-selected': {\r\n backgroundColor: theme.palette.shades.lightgrey,\r\n\r\n '&.checked': {\r\n borderColor: theme.palette.primary.main,\r\n }\r\n },\r\n '&:hover': {\r\n '&.Mui-selected': {\r\n backgroundColor: theme.palette.shades.lightgrey,\r\n }\r\n },\r\n\r\n '& .MuiTypography-root': {\r\n lineHeight: 1.15,\r\n }\r\n },\r\n}))(MenuItem);\r\n\r\ninterface IProps {\r\n data: GetSurveyDetails\r\n onChildClick: any\r\n ref: any\r\n}\r\n// -- get course details\r\nconst TestSelection = React.forwardRef(({ data, onChildClick, ref }: IProps) => {\r\n const classes = useStyles();\r\n\r\n const { activeTestContent, tests, activeTestIndex, activeTestId, setActiveTest } = useTestSelectionData(data);\r\n const { append, remove, fields, form, isSelected, selectedTests } = useTestSelection(activeTestContent?.sys?.id!);\r\n\r\n function selectTest(id: number) {\r\n setActiveTest(id);\r\n }\r\n\r\n function skipTest() {\r\n if (activeTestIndex < tests.length - 1) {\r\n setActiveTest(index => index + 1);\r\n } else {\r\n // -- Last step. close modal?\r\n }\r\n }\r\n\r\n function addTest() {\r\n const { testConfiguration } = form.getValues();\r\n const testData = testConfiguration?.find(x => x.id === activeTestId);\r\n\r\n if (!testData) {\r\n append({\r\n id: activeTestId,\r\n categoryId: activeTestContent?.category?.sys?.id!,\r\n testName: activeTestContent?.title\r\n });\r\n }\r\n }\r\n\r\n function removeTest() {\r\n\r\n const { testConfiguration, courseConfiguration } = form.getValues();\r\n if (testConfiguration) {\r\n const selectedTestIndex = testConfiguration.findIndex(x => x.id === activeTestId);\r\n remove(selectedTestIndex);\r\n\r\n const selectedCourses = courseConfiguration?.filter(x => x.categoryId !== activeTestContent?.category?.sys?.id!);\r\n form.setValue(\"courseConfiguration\", selectedCourses);\r\n }\r\n }\r\n\r\n function toggleTests(testId: string) {\r\n const { testConfiguration, courseConfiguration } = form.getValues();\r\n if (testConfiguration) {\r\n const currentSelectedTest = selectedTests?.find(x => x.id === testId);\r\n if (selectedTests && currentSelectedTest) {\r\n // -- Find index in array\r\n const selectedTestIndex = testConfiguration.findIndex(x => x.id === testId);\r\n // -- Remove index\r\n remove(selectedTestIndex);\r\n\r\n const selectedCourses = courseConfiguration?.filter(x => x.categoryId !== currentSelectedTest?.categoryId);\r\n form.setValue(\"courseConfiguration\", selectedCourses);\r\n }\r\n else {\r\n append({\r\n id: testId,\r\n categoryId: activeTestContent?.category?.sys?.id!,\r\n testName: activeTestContent?.title\r\n });\r\n }\r\n }\r\n }\r\n\r\n function handleClose(event: any) {\r\n onChildClick(event.target.name);\r\n }\r\n\r\n return (\r\n
\r\n {tests[0]?.category?.label}\r\n \r\n \r\n \r\n
\r\n Click To Preview Add\r\n < hr />\r\n \r\n {tests && tests.map((test, index) => {\r\n const checked = selectedTests?.some(x => x.id === test?.sys?.id);\r\n return (\r\n
\r\n selectTest(index)}>\r\n \r\n \r\n toggleTests(test?.sys?.id!)}\r\n />\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n
\r\n {activeTestContent?.title}\r\n
\r\n {activeTestContent &&\r\n \r\n }\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n )\r\n})\r\n\r\nexport default TestSelection;","import { useState } from \"react\";\r\nimport { GetSurveyDetails } from \"types/GetSurveyDetails\";\r\n\r\nexport const useTestSelectionData = (data: GetSurveyDetails) => {\r\n const [activeTestIndex, setActiveTest] = useState(0);\r\n const tests = (data?.surveyCollection && data?.surveyCollection.items) ?? [];\r\n const activeTestContent = tests[activeTestIndex];\r\n\r\n\r\n return {\r\n activeTestIndex,\r\n setActiveTest,\r\n tests,\r\n activeTestContent,\r\n activeTestId: activeTestContent?.sys?.id ?? \"\"\r\n }\r\n}","import { IPlanConfiguration } from \"domain/group/types\";\r\nimport { useFormContext, useFieldArray, useWatch } from \"react-hook-form\";\r\nimport { useState, useEffect } from \"react\";\r\n\r\nexport const useTestSelection = (testId: string) => {\r\n const form = useFormContext();\r\n const [index, setIndex] = useState(-1);\r\n\r\n useEffect(() => {\r\n if (testId) {\r\n const { testConfiguration } = form.getValues();\r\n const courseIndex = testConfiguration?.findIndex(x => x.id === testId) ?? -1;\r\n setIndex(courseIndex);\r\n }\r\n }, [testId])\r\n\r\n\r\n const fieldArrayProps = useFieldArray(\r\n {\r\n control: form.control,\r\n name: \"testConfiguration\",\r\n keyName: \"fieldId\"\r\n }\r\n );\r\n\r\n const selectedTests = useWatch<{ id: string, categoryId: string }[]>({\r\n control: form.control,\r\n name: `testConfiguration`\r\n });\r\n\r\n return {\r\n form,\r\n selectedTests,\r\n isSelected: selectedTests?.some(x => x.id === testId) ?? false,\r\n ...fieldArrayProps\r\n }\r\n}","import React from 'react'\r\nimport { gql } from \"@apollo/client\";\r\nimport { CardActionArea, CardContent, createStyles, IconButton, makeStyles, Modal, Typography } from '@material-ui/core';\r\nimport useContentfulQuery from 'hooks/useContentfulQuery';\r\nimport ContentfulLoading from 'components/contentful-loading';\r\nimport ContentfulError from 'components/contentful-error';\r\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\r\nimport CustomCard from 'components/CustomCard';\r\nimport { useTestCategoryDetails } from './useTestCategoryDetails';\r\nimport TestSelection from './TestSelection';\r\nimport { GetSurveyDetails, GetSurveyDetailsVariables } from 'types/GetSurveyDetails';\r\n\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nconst useStyles = makeStyles((theme) =>\r\n createStyles({\r\n\r\n })\r\n);\r\n\r\n\r\nconst GET_TEST_DETAILS = gql`\r\nquery GetSurveyDetails($preview: Boolean!, $testLimit: Int!, $testIds: [String!]!) {\r\n surveyCollection(preview: $preview, limit: $testLimit, where: {sys: {id_in: $testIds}}) {\r\n items {\r\n sys {\r\n id\r\n }\r\n title\r\n slug\r\n category {\r\n label\r\n sys {\r\n id\r\n }\r\n }\r\n overview {\r\n json\r\n links {\r\n assets {\r\n block {\r\n ... on Asset {\r\n sys {\r\n id\r\n }\r\n title\r\n contentType\r\n url\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n`;\r\n\r\ninterface IProps {\r\n testIds: string[]\r\n title: string\r\n isSelected: boolean\r\n}\r\n\r\n// -- get course details\r\nconst TestCategoryDetails = ({ testIds, title, isSelected }: IProps) => {\r\n const { loading, error, data } = useContentfulQuery(GET_TEST_DETAILS, { testLimit: 10, testIds: testIds });\r\n const { open, handleOpen, handleClose } = useTestCategoryDetails();\r\n\r\n function onModalOpen() {\r\n handleOpen();\r\n }\r\n\r\n function onModalClose() {\r\n handleClose();\r\n }\r\n\r\n if (loading) return ;\r\n if (error) return ;\r\n if (!data) return null;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {title}\r\n \r\n {isSelected ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default TestCategoryDetails;","import { useState } from \"react\";\r\n\r\nexport const useTestCategoryDetails = () => {\r\n const [open, setOpen] = useState(false);\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n return {\r\n handleOpen,\r\n handleClose,\r\n open\r\n }\r\n}","import React from 'react'\r\nimport { gql } from \"@apollo/client\";\r\nimport { createStyles, Grid, makeStyles } from '@material-ui/core';\r\nimport useContentfulQuery from 'hooks/useContentfulQuery';\r\nimport ContentfulLoading from 'components/contentful-loading';\r\nimport ContentfulError from 'components/contentful-error';\r\nimport { GetAllSurveysList, GetAllSurveysListVariables } from 'types/GetAllSurveysList';\r\nimport TestCategoryDetails from './TestCategoryDetails';\r\nimport { useTestingPlans } from './useTestingPlans';\r\n\r\nconst useStyles = makeStyles(() =>\r\n createStyles({\r\n trainingPlanRoot: {\r\n },\r\n })\r\n);\r\n\r\nconst GET_ALL_SURVEY_LIST = gql`\r\n query GetAllSurveysList($preview: Boolean!) {\r\n surveyCollection(preview:$preview) {\r\n items {\r\n sys{\r\n id\r\n }\r\n title\r\n slug\r\n category {\r\n label\r\n sys {\r\n id\r\n }\r\n }\r\n }\r\n }\r\n } \r\n`;\r\n\r\ninterface IProps {\r\n}\r\n\r\nconst TestingPlans = ({ }: IProps) => {\r\n const classes = useStyles();\r\n const { loading, error, data } = useContentfulQuery(GET_ALL_SURVEY_LIST)\r\n const { selectedTests, allCategories } = useTestingPlans(data as GetAllSurveysList);\r\n\r\n if (loading) return ;\r\n if (error) return ;\r\n if (!data) return null;\r\n return (\r\n \r\n {allCategories?.map((item, index) => {\r\n const isSelected = selectedTests?.some(x => x.categoryId === item.id) ?? false;\r\n return (\r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n\r\nexport default TestingPlans;","import { IPlanConfiguration } from \"domain/group/types\";\r\nimport { useFormContext, useWatch } from \"react-hook-form\";\r\nimport { GetAllSurveysList } from \"types/GetAllSurveysList\";\r\n\r\nexport const useTestingPlans = (data: GetAllSurveysList) => {\r\n const form = useFormContext();\r\n let allCategories = data?.surveyCollection?.items\r\n .map(survey => {\r\n return { categoryLabel: survey?.category?.label, id: survey?.category?.sys?.id, tests: [] } as { categoryLabel: string, id: string, tests: string[] }\r\n }).filter((v, i, a) => a.map(x => x.id).indexOf(v.id) === i)\r\n\r\n\r\n data?.surveyCollection?.items.forEach(survey => {\r\n const index = allCategories?.findIndex(x => x.id === survey?.category?.sys?.id) as number;\r\n if (index !== -1 && allCategories) {\r\n allCategories[index].tests.push(survey?.sys.id!);\r\n }\r\n })\r\n \r\n\r\n const selectedTests = useWatch<{ id: string, categoryId: string }[]>({\r\n control: form.control,\r\n name: \"testConfiguration\"\r\n });\r\n\r\n\r\n return {\r\n selectedTests,\r\n allCategories,\r\n form\r\n }\r\n}","\r\nimport useValidForm from \"hooks/useValidForm\";\r\nimport { IPlanConfiguration, ITestConfiguration } from \"../../types\";\r\nimport * as yup from 'yup';\r\nimport { useEffect } from \"react\";\r\nimport { useWatch } from \"react-hook-form\";\r\n\r\nconst validationSchema = yup.object().shape({\r\n})\r\n\r\ninterface IProps {\r\n onSubmitFunc: (data: IPlanConfiguration) => void\r\n data: IPlanConfiguration\r\n}\r\n\r\nexport const usePlanConfigurationForm = ({ onSubmitFunc, data }: IProps) => {\r\n\r\n useEffect(() => {\r\n form.reset(data);\r\n }, [data]);\r\n\r\n const defaultValues: IPlanConfiguration = {\r\n id: \"\",\r\n name: \"\",\r\n testConfiguration: [],\r\n courseConfiguration: [],\r\n groupId: \"\",\r\n planId: \"\"\r\n }\r\n\r\n const form = useValidForm(onSubmitFunc, validationSchema, defaultValues, false);\r\n const selectedTests = useWatch({\r\n control: form.control,\r\n name: \"testConfiguration\"\r\n });\r\n\r\n return {\r\n form,\r\n selectedTests\r\n }\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { makeStyles, createStyles } from \"@material-ui/core/styles\";\r\nimport { Grid, Typography } from \"@material-ui/core\";\r\nimport CoursePlans from \"domain/training/CoursePlans\";\r\nimport TestingPlans from \"domain/survey/TestingPlans\";\r\nimport { IPlanConfiguration } from \"../../types\";\r\nimport GroupNavigation from \"../GroupNavigation\";\r\n\r\nimport { DevTool } from \"@hookform/devtools\";\r\nimport { FormProvider } from \"react-hook-form\";\r\nimport { usePlanConfigurationForm } from \"./usePlanConfigurationForm\";\r\n\r\nconst useStyles = makeStyles(() =>\r\n createStyles({\r\n groupRoot: {\r\n },\r\n })\r\n);\r\n\r\n\r\ninterface IProps {\r\n handleSubmit: (data: IPlanConfiguration) => void\r\n nextStep: () => void\r\n prevStep: () => void\r\n data: IPlanConfiguration\r\n groupId?: string\r\n}\r\n\r\nconst GroupPlanConfiguration = ({ handleSubmit, nextStep, prevStep, data, groupId }: IProps) => {\r\n const classes = useStyles();\r\n\r\n const onSubmitFunc = async (data: IPlanConfiguration) => {\r\n await handleSubmit(data);\r\n if (!groupId) nextStep();\r\n }\r\n\r\n const { form, selectedTests } = usePlanConfigurationForm({ onSubmitFunc, data });\r\n return (\r\n <>\r\n \r\n
\r\n \r\n \r\n Select Tests\r\n \r\n \r\n \r\n Select Training\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default GroupPlanConfiguration;","import { useSelector } from \"react-redux\";\r\nimport { getPlan } from \"store/plan/planSelectors\";\r\nimport { getTotalUsedSlots } from \"store/group/groupSelectors\";\r\nimport { getCurrentGroupSlotsUsed } from \"store/ui/uiSelectors\";\r\n\r\nexport const useMaxAvailableSlot = () => {\r\n const plan = useSelector(getPlan);\r\n const totalUsedSlots = useSelector(getTotalUsedSlots);\r\n const currentUsedSlots = useSelector(getCurrentGroupSlotsUsed);\r\n const availableSlots = (plan.features?.maxNumEmailUsers ?? 0) - totalUsedSlots + currentUsedSlots;\r\n return availableSlots > 0 ? availableSlots : 0;\r\n}","import React from \"react\";\r\nimport { makeStyles, Theme, createStyles } from \"@material-ui/core/styles\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Grid, Typography } from \"@material-ui/core\";\r\nimport { getPlan } from \"store/plan/planSelectors\";\r\nimport CustomStepper from \"../common/CustomStepper\";\r\nimport { useAddGroupStepper } from \"./useAddGroupStepper\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n groupRoot: {\r\n width: \"auto\",\r\n margin: `${theme.spacing(2)}px 64px ${theme.spacing(12)}px 64px`,\r\n\r\n \"&::before\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n top: 0,\r\n bottom: 0,\r\n right: 0,\r\n width: \"100vw\",\r\n background: \"linear-gradient(to bottom, #e6e6e6, #fff 520px)\",\r\n borderTop: \"1px solid\" + theme.palette.shades.grey,\r\n zIndex: -1,\r\n }\r\n },\r\n heading: {\r\n fontWeight: 500,\r\n textTransform: \"uppercase\",\r\n },\r\n })\r\n);\r\n\r\ninterface IProps {\r\n}\r\n\r\nconst AddGroupStepper = ({ }: IProps) => {\r\n const classes = useStyles();\r\n const plan = useSelector(getPlan);\r\n\r\n const { currentComponent, labels, activeStep, setStep } = useAddGroupStepper();\r\n \r\n return (\r\n \r\n \r\n Groups\r\n \r\n \r\n \r\n \r\n \r\n {currentComponent}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default AddGroupStepper;","import moment from \"moment\";\r\nimport React, { useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { getCurrentGroupAnonLinks, getCurrentGroupOverview, getCurrentGroupParticipants, getCurrentGroupPlanConfiguration, getIsPlanUpgradeForMoreEmailsNotNeeded } from \"store/ui/uiSelectors\";\r\nimport { planUpgradeForMoreEmailsNotNeeded, updateConfigurationSection, updateOverviewSection, updateParticipantSection } from \"store/ui/uiSlice\";\r\nimport ParticipantConfiguration from \"domain/participant/ParticipantConfiguration\";\r\nimport { GroupConfirmation, GroupOverview, GroupPlanConfiguration } from \"../common\";\r\nimport { IEmailConfiguration, IGroupOverviewEmailConfiguration, IParticipantsConfiguration, IPlanConfiguration } from \"../types\";\r\nimport { RawDraftContentState } from 'draft-js';\r\nimport draftToHtml from 'draftjs-to-html'\r\nimport { useMaxAvailableSlot } from \"../common/useMaxAvailableSlot\";\r\nimport { getPlan } from \"store/plan/planSelectors\";\r\nimport { IDateTime } from \"../common/groupOverview/GroupOverview\";\r\nimport { useEffect } from \"react\";\r\n\r\nexport const useAddGroupStepper = () => {\r\n const dispatch = useDispatch();\r\n const [activeStep, setActiveStep] = useState(0);\r\n const groupOverviewValues = useSelector(getCurrentGroupOverview);\r\n const participantsValues = useSelector(getCurrentGroupParticipants);\r\n const anonLinksValues = useSelector(getCurrentGroupAnonLinks);\r\n const planConfigurationValues = useSelector(getCurrentGroupPlanConfiguration);\r\n const planValues = useSelector(getPlan);\r\n const isPlanUpgradeForMoreEmailsNotNeeded = useSelector(getIsPlanUpgradeForMoreEmailsNotNeeded);\r\n const maxAvailableSlot = useMaxAvailableSlot();\r\n\r\n useEffect(() => {\r\n if (!isPlanUpgradeForMoreEmailsNotNeeded) { // An upgrade was requested, canceled, or completed from email uploader\r\n dispatch(planUpgradeForMoreEmailsNotNeeded());\r\n setActiveStep(1); // Move to Participant Configuration\r\n }\r\n }, []);\r\n\r\n const stepperData = [\r\n {\r\n title: \"Overview\",\r\n component: \r\n },\r\n {\r\n title: \"Configure Participants\",\r\n component: ,\r\n },\r\n {\r\n title: \"Configure Tests + Training\",\r\n component: ,\r\n },\r\n {\r\n title: \"Group Confirmation\",\r\n component: ,\r\n },\r\n ];\r\n\r\n function setStep(step: number) {\r\n setActiveStep(step);\r\n }\r\n\r\n function nextStep() {\r\n if (activeStep < stepperData.length - 1) setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n }\r\n\r\n function prevStep() {\r\n if (activeStep > 0) setActiveStep((prevActiveStep) => prevActiveStep - 1);\r\n }\r\n\r\n async function addGroupOverview(data: IGroupOverviewEmailConfiguration) {\r\n // submit and save to store\r\n const invitationBodyMarkup = draftToHtml(\r\n data?.emailConfiguration?.invitationEmailBody as unknown as RawDraftContentState,\r\n );\r\n const reminderBodymarkup = draftToHtml(\r\n data?.emailConfiguration?.reminderEmailBody as unknown as RawDraftContentState,\r\n );\r\n\r\n\r\n const sortedDates = data.emailConfiguration?.invitationDates.sort(\r\n (a: IDateTime, b: IDateTime) => new Date(a.dateTime as Date).getTime() - new Date(b.dateTime as Date).getTime()\r\n ) ?? [];\r\n\r\n const invitationDate = sortedDates?.map((date: IDateTime) => {\r\n return {\r\n dateTime: moment(date.dateTime).toISOString() ?? \"\",\r\n initialLoaded: date.initialLoaded ?? false\r\n }\r\n }) as IDateTime[];\r\n\r\n\r\n\r\n const dataSubmission: IGroupOverviewEmailConfiguration = {\r\n ...data,\r\n emailConfiguration: {\r\n ...data?.emailConfiguration,\r\n invitationEmailBody: invitationBodyMarkup,\r\n reminderEmailBody: reminderBodymarkup,\r\n invitationDates: invitationDate\r\n } as IEmailConfiguration\r\n }\r\n\r\n await dispatch(updateOverviewSection(dataSubmission));\r\n }\r\n\r\n async function addGroupParticipants(data: IParticipantsConfiguration) {\r\n // submit and save to store\r\n await dispatch(updateParticipantSection(data));\r\n }\r\n\r\n async function addPlanConfiguration(data: IPlanConfiguration) {\r\n // submit and save to store\r\n await dispatch(updateConfigurationSection(data));\r\n }\r\n\r\n return {\r\n currentComponent: stepperData[activeStep].component,\r\n labels: stepperData.map(x => x.title),\r\n activeStep,\r\n setStep,\r\n }\r\n}\r\n","import React from 'react';\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport { Typography, Box, withStyles } from '@material-ui/core';\r\nimport MuiCircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nconst useStyles = makeStyles(() =>\r\n createStyles({\r\n progressIndicator: {\r\n color: \"white\",\r\n fontSize: \"3rem\",\r\n fontWeight: \"lighter\"\r\n },\r\n progressLabel: {\r\n color: \"white\",\r\n fontSize: \"0.85rem\",\r\n textAlign: \"center\"\r\n }\r\n }),\r\n);\r\n\r\nconst CircularProgress = withStyles({\r\n root: {\r\n color: \"white\",\r\n width: \"100% !important\",\r\n height: \"100% !important\",\r\n padding: \"1rem\"\r\n }\r\n})(MuiCircularProgress);\r\n\r\n\r\ninterface IProps {\r\n value: number\r\n graphLabel: string\r\n label:string\r\n}\r\nconst ParticipantProgressGraph = ({ label, value, graphLabel}: IProps) => {\r\n const classes = useStyles();\r\n return (\r\n <>\r\n \r\n \r\n \r\n {graphLabel}\r\n \r\n \r\n {label}\r\n \r\n );\r\n}\r\n\r\nexport default ParticipantProgressGraph;","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 id: \"iconMail\",\n transform: \"translate(-3691 -932)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Rectangle_721\",\n \"data-name\": \"Rectangle 721\",\n transform: \"translate(3691 932)\",\n fill: \"#fff\",\n stroke: \"#1a1a1a\",\n strokeWidth: 4\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 91,\n height: 56,\n rx: 6,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: 2,\n y: 2,\n width: 87,\n height: 52,\n rx: 4,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Polygon_88\",\n \"data-name\": \"Polygon 88\",\n transform: \"translate(3691 953)\",\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 85.11976623535156 32.99999618530273 L 5.880237579345703 32.99999618530273 L 45.5 2.523271083831787 L 85.1197509765625 33.00000762939453 L 85.11976623535156 32.99999618530273 Z\",\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 45.49999618530273 5.04652214050293 L 11.76049041748047 30.9999942779541 L 79.23949432373047 30.9999942779541 L 45.49999618530273 5.04652214050293 M 45.49999237060547 0.5232582092285156 C 45.92997741699219 0.5232582092285156 46.35996246337891 0.6615104675292969 46.71941375732422 0.9380073547363281 L 86.33917236328125 31.41475105285645 C 87.85285949707031 32.57912445068359 87.02944183349609 34.99999618530273 85.11975860595703 34.99999618530273 L 5.880241394042969 34.99999618530273 C 3.970542907714844 35.00000762939453 3.147140502929688 32.57912445068359 4.660812377929688 31.41475105285645 L 44.28057098388672 0.9380073547363281 C 44.64002227783203 0.6615104675292969 45.07000732421875 0.5232582092285156 45.49999237060547 0.5232582092285156 Z\",\n stroke: \"none\",\n fill: \"#1a1a1a\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Polygon_87\",\n \"data-name\": \"Polygon 87\",\n transform: \"translate(3782 967) rotate(180)\",\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 85.11976623535156 32.99999618530273 L 5.880237579345703 32.99999618530273 L 45.5 2.523271083831787 L 85.1197509765625 33.00000762939453 L 85.11976623535156 32.99999618530273 Z\",\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 45.49999618530273 5.04652214050293 L 11.76049041748047 30.9999942779541 L 79.23949432373047 30.9999942779541 L 45.49999618530273 5.04652214050293 M 45.49999237060547 0.5232582092285156 C 45.92997741699219 0.5232582092285156 46.35996246337891 0.6615104675292969 46.71941375732422 0.9380073547363281 L 86.33917236328125 31.41475105285645 C 87.85285949707031 32.57912445068359 87.02944183349609 34.99999618530273 85.11975860595703 34.99999618530273 L 5.880241394042969 34.99999618530273 C 3.970542907714844 35.00000762939453 3.147140502929688 32.57912445068359 4.660812377929688 31.41475105285645 L 44.28057098388672 0.9380073547363281 C 44.64002227783203 0.6615104675292969 45.07000732421875 0.5232582092285156 45.49999237060547 0.5232582092285156 Z\",\n stroke: \"none\",\n fill: \"#1a1a1a\"\n})));\n\nfunction SvgIconMail(_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 xmlns: \"http://www.w3.org/2000/svg\",\n width: 91,\n height: 56,\n viewBox: \"0 0 91 56\",\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(SvgIconMail);\nexport default __webpack_public_path__ + \"static/media/iconMail.216fa95f.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport { makeStyles, Theme, createStyles, withStyles, DialogTitleProps, IconButton, DialogContent, Grid, Typography } from \"@material-ui/core\";\r\nimport MuiDialog from '@material-ui/core/Dialog';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport ErrorButton from \"components/ErrorButton\";\r\nimport { useUnverifiedEmail } from \"./useUnverifiedEmail\";\r\nimport { ReactComponent as IconMail } from \"assets/iconMail.svg\";\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n modalHeading: {\r\n fontSize: \"1.1875rem\",\r\n fontWeight: 400,\r\n textTransform: \"capitalize\",\r\n color: \"white\",\r\n backgroundColor: \"#D42C22\",\r\n padding: '8px 24px',\r\n },\r\n headerTitle: {\r\n display: 'block',\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"12px\",\r\n fontWeight: 300,\r\n },\r\n headerSubtitle: {\r\n display: 'block',\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"18px\",\r\n fontWeight: 900,\r\n textTransform: \"uppercase\",\r\n },\r\n contentTitle: {\r\n display: 'block',\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"1.2em\",\r\n fontWeight: 900,\r\n marginBottom: \"10px\"\r\n },\r\n contentBody: {\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"12px\",\r\n fontWeight: 400,\r\n },\r\n contentEmail: {\r\n fontSize: \"12px\",\r\n fontWeight: 900,\r\n margin: \"10px 0px\"\r\n },\r\n modalImage: {\r\n margin: \"auto\",\r\n height: 104,\r\n width: 57,\r\n marginTop: 10,\r\n marginBottom: 20,\r\n },\r\n modalButton: {\r\n color: \"white\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n backgroundColor: \"#D42C22\",\r\n borderRadius: '10em',\r\n textTransform: 'none',\r\n paddingTop: 6,\r\n paddingBottom: 6,\r\n marginTop: 14,\r\n marginBottom: 8,\r\n },\r\n modalCloseButton: {\r\n color: \"#D42C22\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n backgroundColor: \"white\",\r\n borderRadius: '10em',\r\n textTransform: 'none',\r\n textAlign: 'center',\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n padding: '4px',\r\n },\r\n resendButton: {\r\n textAlign: 'center',\r\n marginTop: \"20px\"\r\n },\r\n cancelButton: {\r\n textAlign: 'center',\r\n }\r\n }),\r\n);\r\n\r\ninterface IProps {\r\n handleModalClose: () => void\r\n isOpen: boolean\r\n}\r\n\r\nconst UnverifiedEmailModal = ({ handleModalClose, isOpen }: IProps) => {\r\n const classes = useStyles();\r\n\r\n const { resendVerificationEmail, user } = useUnverifiedEmail();\r\n\r\n async function handleResendVerificationEmail() {\r\n await resendVerificationEmail();\r\n handleModalClose();\r\n }\r\n\r\n const Dialog = withStyles((theme: Theme) => ({\r\n paper: {\r\n height: \"auto\",\r\n width: 291,\r\n borderRadius: \"1rem\",\r\n },\r\n }))(MuiDialog);\r\n\r\n const DialogTitle = (props: DialogTitleProps) => {\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n Alert\r\n VERIFICATION REQUIRED\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n To continue you must first verify your e-mail address\r\n \r\n \r\n Thank you for using BiasProof. Please confirm your email address\r\n \r\n \r\n {user.email}\r\n \r\n \r\n Check your inbox and follow the link. If you have not received a confirmation email, click the link below to resend.\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default UnverifiedEmailModal;","import { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { getUser, isEmailConfirmed } from \"store/user/userSelector\";\r\nimport { resendConfirmationAction } from \"store/user/userSlice\";\r\n\r\nexport const useUnverifiedEmail = () => {\r\n const dispatch = useDispatch();\r\n const isVerified = useSelector(isEmailConfirmed);\r\n const user = useSelector(getUser);\r\n async function resendVerificationEmail() {\r\n await dispatch(resendConfirmationAction());\r\n }\r\n\r\n return {\r\n user,\r\n isVerified,\r\n resendVerificationEmail\r\n }\r\n}","import React from 'react';\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport { Grid, Theme, Typography, CardActionArea, CardContent, IconButton, withStyles, Button, Icon, Modal } from '@material-ui/core';\r\n\r\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\r\nimport MuiCard from '@material-ui/core/Card';\r\nimport MuiCardActions from '@material-ui/core/CardActions';\r\nimport { useGroupListing } from './useGroupListing';\r\nimport ParticipantProgressGraph from './ParticipantProgressGraph';\r\nimport { MockGroupList } from './GroupListingMock';\r\nimport UnverifiedEmailModal from './UnverifiedEmailModal';\r\nimport { useUnverifiedEmailModal } from './useUnverifiedEmailModa';\r\nimport { useSelector } from 'react-redux';\r\nimport { isEmailConfirmed } from 'store/user/userSelector';\r\n\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n cardActionArea: {\r\n backgroundColor: \"#DB5205\"\r\n },\r\n cardHeader: {\r\n color: \"white\"\r\n },\r\n progressIndicator: {\r\n color: \"white\",\r\n fontSize: \"3rem\",\r\n fontWeight: \"lighter\"\r\n },\r\n progressLabel: {\r\n color: \"white\",\r\n fontSize: \"0.85rem\",\r\n textAlign: \"center\"\r\n },\r\n dateTimeIndicator: {\r\n fontSize: \"0.8rem\"\r\n },\r\n addGroupWrapper: {\r\n display: \"flex\",\r\n height: \"calc(100vh - 360px)\",\r\n },\r\n addFirstGroupButton: {\r\n display: \"flex\",\r\n margin: \"auto\",\r\n fontSize: 20,\r\n fontWeight: 700,\r\n textTransform: \"uppercase\",\r\n\r\n \"& .MuiButton-startIcon\": {\r\n padding: 4,\r\n color: \"#fff\",\r\n fontWeight: 700,\r\n background: theme.palette.shades.grey,\r\n borderRadius: 20,\r\n\r\n \"& .MuiIcon-root\": {\r\n fontSize: \"1.5em\",\r\n textShadow: \"0.5px 0.5px 0 #fff, -0.5px 0.5px 0 #fff, 0.5px -0.5px 0 #fff, -0.5px -0.5px 0 #fff\",\r\n }\r\n }\r\n },\r\n }),\r\n);\r\n\r\nconst Card = withStyles({\r\n root: {\r\n borderRadius: 12,\r\n margin: \"auto\",\r\n transition: \"0.3s\",\r\n boxShadow: \"0 8px 40px -12px rgba(0,0,0,0.2)\",\r\n \"&:hover\": {\r\n boxShadow: \"0 16px 70px -12.125px rgba(0,0,0,0.3)\"\r\n },\r\n minheight: \"\"\r\n }\r\n})(MuiCard);\r\n\r\nconst AddCard = withStyles({\r\n root: {\r\n borderRadius: 12,\r\n margin: \"auto\",\r\n transition: \"0.3s\",\r\n boxShadow: \"0 8px 40px -12px rgba(0,0,0,0.5)\",\r\n \"&:hover\": {\r\n boxShadow: \"0 16px 70px -12.125px rgba(0,0,0,0.3)\"\r\n },\r\n height: \"100%\",\r\n minHeight: \"300px\",\r\n display: \"flex\"\r\n }\r\n})(MuiCard);\r\n\r\nconst CardActions = withStyles({\r\n root: {\r\n float: \"right\"\r\n },\r\n})(MuiCardActions);\r\n\r\n\r\nconst GroupListing = ({ }) => {\r\n const classes = useStyles();\r\n const { groupList, deleteGroup, editGroup, addGroup, plan } = useGroupListing();\r\n const { open, openUnverifiedEmailModal, closeUnverifiedEmailModal } = useUnverifiedEmailModal();\r\n const isVerified = useSelector(isEmailConfirmed);\r\n\r\n if (groupList.length > 0)\r\n return (\r\n <>\r\n {groupList.map(group => {\r\n return (\r\n \r\n isVerified ? editGroup(group.id!) : openUnverifiedEmailModal()}>\r\n \r\n \r\n {group.name}\r\n \r\n \r\n \r\n Next Test Date:{group.nextDate ? new Date(group.nextDate).toLocaleDateString() : 'N/A'}\r\n \r\n \r\n \r\n deleteGroup(group.id!)}>\r\n {/* */}\r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Add Group\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default GroupListing;","import { navigate } from \"@reach/router\";\r\nimport { useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { getGroupList } from \"store/group/groupSelectors\";\r\nimport { getPlan } from \"store/plan/planSelectors\";\r\nimport { clearGroup } from \"store/ui/uiSlice\";\r\nimport { Paths } from \"utils/constants\";\r\n\r\nexport const useGroupListing = () => {\r\n const dispatch = useDispatch();\r\n const _groups = useSelector(getGroupList);\r\n const _plan = useSelector(getPlan);\r\n\r\n useEffect(() => {\r\n async function _getAllGroups() {\r\n // dispatch(getAllGroups(true));\r\n dispatch(clearGroup());\r\n }\r\n _getAllGroups();\r\n }, []);\r\n\r\n function editGroup(id: string) {\r\n navigate(`${Paths.GROUPS}/${id}`);\r\n }\r\n function deleteGroup(id: string) {\r\n\r\n }\r\n function addGroup() {\r\n navigate(`${Paths.GROUPS}/add`);\r\n }\r\n\r\n return {\r\n groupList: _groups,\r\n editGroup,\r\n deleteGroup,\r\n addGroup,\r\n plan: _plan\r\n }\r\n}","import { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { getUser, isEmailConfirmed } from \"store/user/userSelector\";\r\nimport { resendConfirmationAction } from \"store/user/userSlice\";\r\n\r\nexport const useUnverifiedEmailModal = () => {\r\n const [open, setOpen] = useState(false);\r\n\r\n function openUnverifiedEmailModal() {\r\n setOpen(true);\r\n }\r\n\r\n function closeUnverifiedEmailModal() {\r\n setOpen(false);\r\n }\r\n\r\n return {\r\n openUnverifiedEmailModal,\r\n closeUnverifiedEmailModal,\r\n open\r\n }\r\n}","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 id: \"Group_512\",\n \"data-name\": \"Group 512\",\n transform: \"translate(1580.191 -1838)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_555\",\n \"data-name\": \"Path 555\",\n d: \"M-1554.762,1894.436V1891.2a18.107,18.107,0,0,1,.268-3.491,18.809,18.809,0,0,1,12.166-14.647q.306-.122.621-.231a14.316,14.316,0,0,1-3.668-9.228,18.636,18.636,0,0,0-3.357-1.029c-.426-.087-.861-.135-1.291-.2.027-.214.17-.261.273-.336a12.975,12.975,0,0,0,5.418-9.025,13.272,13.272,0,0,0-9.6-14.577c-.648-.181-1.315-.294-1.973-.44h-3.244a14.142,14.142,0,0,0-5.453,1.983,12.875,12.875,0,0,0-6.168,10.27,12.927,12.927,0,0,0,5.419,11.757c.116.089.281.136.32.373a16.092,16.092,0,0,0-3.968.95,16.847,16.847,0,0,0-10.944,13.169,16.234,16.234,0,0,0-.231,3.111c0,4.3.01,8.611-.013,12.916a.921.921,0,0,0,.76,1.067,87.469,87.469,0,0,0,15.879,3.389,65.967,65.967,0,0,0,8.786.38C-1554.766,1896.389-1554.762,1895.412-1554.762,1894.436Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_556\",\n \"data-name\": \"Path 556\",\n d: \"M-1480.269,1878.1a15.553,15.553,0,0,0-3.546-9.257,16.973,16.973,0,0,0-10.247-6.269c-.427-.087-.861-.135-1.291-.2.027-.214.17-.261.273-.336a12.976,12.976,0,0,0,5.418-9.025,13.273,13.273,0,0,0-9.6-14.577c-.648-.181-1.315-.294-1.973-.44h-3.244a14.154,14.154,0,0,0-5.454,1.983,12.876,12.876,0,0,0-6.167,10.27,12.927,12.927,0,0,0,5.419,11.757c.116.089.281.136.32.373a16.092,16.092,0,0,0-3.968.95c-.166.066-.323.139-.485.209-.021.444-.058.89-.12,1.338a14.824,14.824,0,0,1-3.573,7.972,18.8,18.8,0,0,1,9.011,6.351,17.479,17.479,0,0,1,3.973,10.437c.074,2.545.078,5.1.073,7.627,2.168.127,4.341.158,6.514.075a51.216,51.216,0,0,0,15.643-2.876,26.835,26.835,0,0,0,2.6-1.126.745.745,0,0,0,.486-.757C-1480.225,1887.757-1480.129,1882.928-1480.269,1878.1Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_557\",\n \"data-name\": \"Path 557\",\n d: \"M-1531.738,1849.592h3.244c.658.145,1.325.259,1.973.441a13.271,13.271,0,0,1,9.6,14.576,12.976,12.976,0,0,1-5.418,9.025c-.1.075-.246.122-.273.336.43.066.865.114,1.291.2a16.969,16.969,0,0,1,10.247,6.269,15.552,15.552,0,0,1,3.546,9.257c.14,4.823.045,9.652.062,14.478a.743.743,0,0,1-.486.757,26.848,26.848,0,0,1-2.6,1.126,51.217,51.217,0,0,1-15.643,2.876,66.3,66.3,0,0,1-9.942-.357,87.469,87.469,0,0,1-15.878-3.389.922.922,0,0,1-.761-1.067c.023-4.3.013-8.61.013-12.916a16.318,16.318,0,0,1,.231-3.111,16.847,16.847,0,0,1,10.944-13.169,16.1,16.1,0,0,1,3.968-.95c-.039-.237-.2-.284-.32-.373a12.927,12.927,0,0,1-5.419-11.756,12.875,12.875,0,0,1,6.168-10.271A14.145,14.145,0,0,1-1531.738,1849.592Z\"\n}));\n\nfunction SvgIconLicenses(_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 id: \"iconLicenses\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 100,\n height: 70.984,\n viewBox: \"0 0 100 70.984\",\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(SvgIconLicenses);\nexport default __webpack_public_path__ + \"static/media/iconLicenses.93216c9d.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { navigate } from \"@reach/router\";\r\nimport { makeStyles, Theme, createStyles, withStyles, DialogTitleProps, IconButton, DialogContent, Grid, Typography } from \"@material-ui/core\";\r\nimport MuiDialog from '@material-ui/core/Dialog';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\nimport ErrorButton from \"components/ErrorButton\";\r\nimport { Paths } from \"utils/constants\";\r\nimport { ReactComponent as IconLicense } from \"assets/iconLicenses.svg\";\r\nimport { planUpgradeForMoreEmailsRequested } from \"store/ui/uiSlice\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n modalHeading: {\r\n fontSize: \"1.1875rem\",\r\n fontWeight: 400,\r\n textTransform: \"capitalize\",\r\n color: \"white\",\r\n backgroundColor: \"#D42C22\",\r\n padding: '8px 24px 8px 16px',\r\n },\r\n headerTitle: {\r\n display: 'block',\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"12px\",\r\n fontWeight: 300,\r\n },\r\n headerSubtitle: {\r\n display: 'block',\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"18px\",\r\n fontWeight: 900,\r\n textTransform: \"uppercase\",\r\n },\r\n contentTitle: {\r\n display: 'block',\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"1.2em\",\r\n fontWeight: 900,\r\n marginBottom: \"10px\"\r\n },\r\n contentBody: {\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"12px\",\r\n fontWeight: 400,\r\n },\r\n contentEmail: {\r\n fontSize: \"12px\",\r\n fontWeight: 900,\r\n margin: \"10px 0px\"\r\n },\r\n modalImage: {\r\n margin: \"auto\",\r\n height: 104,\r\n width: 57,\r\n marginTop: 10,\r\n marginBottom: 20,\r\n },\r\n modalButton: {\r\n color: \"white\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n backgroundColor: \"#D42C22\",\r\n borderRadius: '10em',\r\n textTransform: 'none',\r\n paddingTop: 6,\r\n paddingBottom: 6,\r\n marginTop: 14,\r\n marginBottom: 8,\r\n },\r\n modalCloseButton: {\r\n color: \"#D42C22\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n backgroundColor: \"white\",\r\n borderRadius: '10em',\r\n textTransform: 'none',\r\n textAlign: 'center',\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n padding: '4px',\r\n },\r\n resendButton: {\r\n textAlign: 'center',\r\n marginTop: \"20px\"\r\n },\r\n cancelButton: {\r\n textAlign: 'center',\r\n }\r\n }),\r\n);\r\n\r\ninterface IProps {\r\n maxNumLicenses: number;\r\n isOpen: boolean;\r\n handleModalClose: () => void;\r\n}\r\n\r\nconst TooManyEmailsModal = ({ maxNumLicenses, handleModalClose, isOpen }: IProps) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const handleUpgrade = async () => {\r\n await dispatch(planUpgradeForMoreEmailsRequested());\r\n navigate(Paths.EDIT_PLAN)\r\n }\r\n\r\n const Dialog = withStyles((theme: Theme) => ({\r\n paper: {\r\n height: \"auto\",\r\n width: 291,\r\n borderRadius: \"1rem\",\r\n },\r\n }))(MuiDialog);\r\n\r\n const DialogTitle = (props: DialogTitleProps) => {\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n Alert\r\n LICENSE LIMIT REACHED\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n You have reached the license threshold of your current subscription.\r\n \r\n \r\n You are currently limited to {maxNumLicenses} licenses. Consider adding more licenses to your current plan or if you require more licenses than your current plan allows, upgrade to a larger tier that can fulfill your requirements.\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default TooManyEmailsModal;","import React, { useState, useEffect } from 'react';\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport MaterialTable from \"material-table\";\r\nimport { Accordion, AccordionDetails, AccordionSummary, Box, Button, FormControlLabel, Grid, Switch, Typography, withStyles } from '@material-ui/core';\r\nimport useEmailsTemplateURI from './useEmailsTemplateURI';\r\nimport useParticipantConfiguration from './useParticipantConfiguration';\r\nimport EmailValidationResultCell from './EmailValidationResultCell';\r\nimport { GroupNavigation } from 'domain/group';\r\nimport CustomCard from 'components/CustomCard';\r\nimport { IParticipantsConfiguration } from 'domain/group/types';\r\nimport TooManyEmailsModal from './TooManyEmailsModal';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport theme from 'theme';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n ParticipantConfigurationRoot: {\r\n '& > *': {\r\n margin: theme.spacing(1),\r\n },\r\n },\r\n emailUploadInstruction: {\r\n marginTop: 8,\r\n fontSize: 14,\r\n lineHeight: 1.15,\r\n \"& a\": {\r\n color: \"#29ABE2\",\r\n fontWeight: 700,\r\n textDecoration: \"none\",\r\n \"&:hover, &:focus\": {\r\n textDecoration: \"underline\",\r\n }\r\n }\r\n },\r\n uploadButton: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n alignItems: \"flex-end\",\r\n },\r\n emailLicenseUsageText: {\r\n fontWeight: 700,\r\n },\r\n emailLicenseUsage: {\r\n color: theme.palette.orange.main,\r\n fontFamily: \"inherit\",\r\n fontSize: 28,\r\n fontWeight: 900,\r\n lineHeight: 0.8,\r\n },\r\n input: {\r\n display: 'none',\r\n },\r\n errorBar: {\r\n borderRadius: '15px',\r\n padding: '15px',\r\n color: 'rgb(97, 26, 21)',\r\n backgroundColor: 'rgb(253, 236, 234)'\r\n },\r\n valid: { color: 'green' },\r\n duplicate: { color: 'yellow' },\r\n invalid: { color: 'red' }\r\n }),\r\n);\r\n\r\nconst StyledAccordion = withStyles({\r\n root: {\r\n borderRadius: 12,\r\n }\r\n})(Accordion);\r\n\r\nconst StyledAccordionSummary = withStyles({\r\n root: {\r\n backgroundColor: theme.palette.orange.main,\r\n borderRadius: 12,\r\n }\r\n})(AccordionSummary);\r\n\r\nconst AccordionSwitch = withStyles({\r\n switchBase: {\r\n color: theme.palette.orange.dark,\r\n '&$checked': {\r\n color: theme.palette.orange.highlight,\r\n },\r\n '&$checked + $track': {\r\n backgroundColor: \"#F2F2F2\",\r\n },\r\n },\r\n checked: {},\r\n track: {},\r\n})(Switch);\r\n\r\ninterface IProps {\r\n handleSubmit: (data: IParticipantsConfiguration) => void;\r\n nextStep: () => void;\r\n prevStep?: () => void;\r\n groupId?: string;\r\n emails?: string[] | undefined;\r\n links?: string[] | undefined;\r\n allowAnonymousUsers?: boolean;\r\n allowEmailUsers?: boolean;\r\n maxNumAnonymousUsers?: number;\r\n maxNumEmailUsers?: number;\r\n numAvailAnonymousUsers?: number;\r\n numAvailEmailUsers?: number;\r\n}\r\n\r\nconst ParticipantConfiguration = (\r\n {\r\n handleSubmit, nextStep, prevStep,\r\n groupId,\r\n emails = [], links = [],\r\n allowAnonymousUsers, maxNumAnonymousUsers = 0, numAvailAnonymousUsers = 0,\r\n allowEmailUsers, maxNumEmailUsers = 0, numAvailEmailUsers = 0,\r\n }: IProps) => {\r\n\r\n const classes = useStyles();\r\n\r\n const [anonUsersSelected, setAnonUsersSelected] = useState(\r\n (!allowEmailUsers) && allowAnonymousUsers ? true : false\r\n );\r\n const [displayTooManyEmailsModal, setDisplayTooManyEmailsModal] = useState(false);\r\n\r\n const { dataURL: emailsTemplateURI } = useEmailsTemplateURI()\r\n const { handleInput, isUploaded, isValid, isTooManyEmails, dataValidationResult } = useParticipantConfiguration(numAvailEmailUsers, emails?.map(participant => [participant ?? '']) ?? undefined)\r\n\r\n function handleNext() {\r\n if (anonUsersSelected)\r\n handleSubmit({\r\n anonymousUsers: true,\r\n participants: []\r\n });\r\n else\r\n handleSubmit({\r\n anonymousUsers: false,\r\n participants: dataValidationResult.map((row) => row.email)\r\n });\r\n\r\n if (!groupId) nextStep();\r\n }\r\n\r\n useEffect(() => {\r\n if (isUploaded && isTooManyEmails)\r\n setDisplayTooManyEmailsModal(true);\r\n }, [isUploaded, isTooManyEmails])\r\n\r\n const InviteByLink = () => {\r\n return (\r\n
\r\n {\r\n links.length > 0 ?\r\n <>\r\n Generated Links:\r\n {links.map(link => {link})}\r\n \r\n :\r\n After this group is saved, one or more links will be generated that you can share with participants. To view the links, open the newly created group and click on this section.\r\n }\r\n
\r\n )\r\n }\r\n\r\n const InviteByEmail = () => {\r\n return (\r\n \r\n \r\n Upload a list of emails that will make up the participants of the group. You can add emails one at a time or you can upload a .csv file with a list of your groups emails. To get you started download a sample email list which you can modify and save. Once you have added your groups emails to the list, simply upload your list by pressing the Upload Email List link below. Remember that the number of group members will depend on the plan that you have selected.\r\n \r\n \r\n
\r\n { setAnonUsersSelected(false); handleInput(event); }}\r\n className={classes.input}\r\n id=\"upload-users-button\"\r\n />\r\n \r\n
\r\n
\r\n \r\n Licenses used\r\n {maxNumEmailUsers - numAvailEmailUsers + dataValidationResult.length}/{maxNumEmailUsers}\r\n \r\n \r\n {isUploaded && !isValid && An error was encountered while loading the file!}\r\n \r\n \r\n \r\n },\r\n ]}\r\n data={dataValidationResult}\r\n options={{\r\n headerStyle: {\r\n backgroundColor: '#C8602A',\r\n color: '#FFF',\r\n },\r\n }}\r\n style={{\r\n borderRadius: 12,\r\n }}\r\n components={{\r\n Toolbar: props => (\r\n
\r\n
\r\n )\r\n }}\r\n />\r\n
\r\n setDisplayTooManyEmailsModal(false)}\r\n />\r\n
\r\n )\r\n }\r\n\r\n const InviteByBoth = () => {\r\n return (\r\n
\r\n \r\n }\r\n aria-label=\"Expand\"\r\n aria-controls=\"additional-actions1-content\"\r\n id=\"additional-actions1-header\"\r\n >\r\n event.stopPropagation()}\r\n onFocus={(event) => event.stopPropagation()}\r\n control={ setAnonUsersSelected(!anonUsersSelected)} />}\r\n label=\"Accessible to Anyone with a Link\"\r\n style={{ color: 'white' }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n aria-label=\"Expand\"\r\n aria-controls=\"additional-actions2-content\"\r\n id=\"additional-actions2-header\"\r\n >\r\n event.stopPropagation()}\r\n onFocus={(event) => event.stopPropagation()}\r\n control={ setAnonUsersSelected(!anonUsersSelected)} />}\r\n label=\"Accessible by Invitation Email Only\"\r\n style={{ color: 'white' }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n allowAnonymousUsers && !allowEmailUsers &&\r\n \r\n }\r\n {\r\n !allowAnonymousUsers && allowEmailUsers &&\r\n \r\n }\r\n {\r\n allowAnonymousUsers && allowEmailUsers &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ParticipantConfiguration;","\r\nimport { ConfigurationParameters, GroupApi, Configuration, PlanApi, PlanConfigurationApi, ParticipantApi, PlanDTO, PlanConfigurationDTO } from \"external-api/license-api\";\r\nimport Cookies from \"js-cookie\";\r\nimport { trackPromise } from \"react-promise-tracker\";\r\nimport { CookieNames } from \"utils/constants\";\r\nimport { getToken } from \"utils/cookieHelper\";\r\n\r\nimport http from \"./axiosService\";\r\nconst apiUrl = `${process.env.REACT_APP_LICENSE_API_URL}`;\r\n\r\nfunction getApi() {\r\n const token = getToken();\r\n const configParams: ConfigurationParameters = {\r\n basePath: apiUrl,\r\n baseOptions: {\r\n headers:\r\n {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n };\r\n const axios = http.axios;\r\n const configuration = new Configuration(configParams);\r\n return new PlanConfigurationApi(configuration, apiUrl, axios);\r\n}\r\n\r\nexport default class PlanConfigurationService {\r\n\r\n planConfigurationApi: PlanConfigurationApi\r\n\r\n constructor() {\r\n this.planConfigurationApi = getApi();\r\n }\r\n\r\n updatePlanConfiguration = async (planConfigurationId: string, planConfiguration: PlanConfigurationDTO) => {\r\n const resp = await trackPromise(this.planConfigurationApi.planConfigurationUpdatePlanConfiguration(planConfigurationId, planConfiguration));\r\n return resp.data;\r\n }\r\n}","\r\nimport { ConfigurationParameters, Configuration, PlanApi, PlanDTO } from \"external-api/license-api\";\r\nimport Cookies from \"js-cookie\";\r\nimport { trackPromise } from \"react-promise-tracker\";\r\nimport { CookieNames } from \"utils/constants\";\r\nimport { getToken } from \"utils/cookieHelper\";\r\nimport http from \"./axiosService\";\r\n\r\nconst apiUrl = `${process.env.REACT_APP_LICENSE_API_URL}`;\r\n\r\nfunction getApi() {\r\n const token = getToken();\r\n const configParams: ConfigurationParameters = {\r\n basePath: apiUrl,\r\n baseOptions: {\r\n headers:\r\n {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n };\r\n\r\n const axios = http.axios;\r\n const configuration = new Configuration(configParams);\r\n return new PlanApi(configuration, apiUrl, axios);\r\n}\r\n\r\nexport default class PlanService {\r\n\r\n planApi: PlanApi\r\n\r\n constructor() {\r\n this.planApi = getApi();\r\n }\r\n\r\n getPlan = async (id: string) => {\r\n const resp = await trackPromise(this.planApi.planGetPlan(id));\r\n return resp.data;\r\n }\r\n}","import {\r\n createAsyncThunk,\r\n createSlice,\r\n} from \"@reduxjs/toolkit\";\r\nimport { DowngradeSubscriptionRequest, PlanConfigurationDTO, PlanDTO, UpgradeSubscriptionReqDTO } from \"external-api/license-api\";\r\nimport PlanConfigurationService from \"services/planConfigurationService\";\r\nimport PlanService from \"services/planService\";\r\nimport EcomService from \"services/ecomService\";\r\nimport { IApplicationState, ValidationErrors } from \"store\";\r\nimport { enqueueNotification } from \"store/ui/uiSlice\";\r\nimport { tryRefreshTokenAction } from \"store/user/userSlice\";\r\nimport { handleAuthErrors } from \"utils/errorHandling\";\r\nimport { loadStripe } from \"@stripe/stripe-js\";\r\n\r\nconst initialState: PlanDTO = {\r\n id: \"\",\r\n name: \"\",\r\n description: \"\",\r\n price: 0,\r\n hasStripe: false,\r\n features:\r\n {\r\n allowAnonymousUsers: false,\r\n maxNumAnonymousUsers: 0,\r\n allowEmailUsers: false,\r\n maxNumEmailUsers: 0,\r\n },\r\n pendingPayment: false,\r\n stripeCustomerID: \"\",\r\n stripeSubscriptionID: \"\",\r\n stripeProductID: \"\"\r\n}\r\n\r\nconst getMyPlan = createAsyncThunk<\r\n PlanDTO,\r\n undefined,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/plan/get\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch, getState } = thunkAPI;\r\n const { user } = getState();\r\n if (!user.info?.planId)\r\n return rejectWithValue({ message: \"Invalid planId.\", field_errors: { planId: user.info?.planId as string } }) as any\r\n else {\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n const service = new PlanService();\r\n const resData: PlanDTO = await service.getPlan(user.info?.planId);\r\n return resData as any;\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body) as any\r\n }\r\n }\r\n }\r\n );\r\n\r\nconst downgradePlanAction = createAsyncThunk<\r\n { status: string, },\r\n DowngradeSubscriptionRequest,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@plan/downgrade\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n\r\n await dispatch(tryRefreshTokenAction());\r\n const ecomService = new EcomService();\r\n await ecomService.downgradeSubscription(data);\r\n\r\n dispatch(enqueueNotification({\r\n message: 'Successfully Updated Plan',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n\r\n return {\r\n status: 'success',\r\n }\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err, 'There was an issue with updating plan');\r\n return rejectWithValue(err.body)\r\n }\r\n });\r\n\r\nconst upgradePlanAction = createAsyncThunk<\r\n { status: string, sessionId: string },\r\n UpgradeSubscriptionReqDTO,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@plan/upgrade\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch } = thunkAPI;\r\n try {\r\n await dispatch(tryRefreshTokenAction());\r\n const stripeKey = `${process.env.REACT_APP_STRIPE_KEY}`;\r\n const stripe = await loadStripe(stripeKey);\r\n\r\n const ecomService = new EcomService();\r\n const resp = await ecomService.upgradeSubscription(data);\r\n\r\n if (stripe && resp) {\r\n const stripeRes = await stripe.redirectToCheckout({ sessionId: resp });\r\n }\r\n return {\r\n status: 'success',\r\n sessionId: resp,\r\n }\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err, 'There was an issue with updating plan');\r\n return rejectWithValue(err.body)\r\n }\r\n });\r\n\r\nconst updatePlanConfiguration = createAsyncThunk<\r\n PlanConfigurationDTO,\r\n undefined,\r\n {\r\n rejectValue: ValidationErrors,\r\n state: IApplicationState\r\n }>(\"@@/plan/update\",\r\n async (data, thunkAPI) => {\r\n const { rejectWithValue, dispatch, getState } = thunkAPI;\r\n try {\r\n\r\n await dispatch(tryRefreshTokenAction());\r\n const { ui } = getState();\r\n const service = new PlanConfigurationService();\r\n const currentPlanConfiguration = ui.group.planConfiguration;\r\n const planConfigurationDTO: PlanConfigurationDTO = {\r\n name: currentPlanConfiguration?.name,\r\n groupId: ui.group?.id,\r\n courseConfiguration: currentPlanConfiguration?.courseConfiguration?.map(x => {\r\n return {\r\n categoryId: x.categoryId,\r\n id: x.id,\r\n courseModuleIds: x.courseModuleIds?.map(x => x.moduleId)\r\n }\r\n }),\r\n testConfiguration: currentPlanConfiguration?.testConfiguration\r\n };\r\n\r\n const resData: PlanConfigurationDTO = await service.updatePlanConfiguration(ui.group.planConfiguration?.id!, planConfigurationDTO);\r\n\r\n dispatch(enqueueNotification({\r\n message: 'Successfully Updated Plan configuration',\r\n options: {\r\n key: new Date().getTime() + Math.random(),\r\n variant: 'success'\r\n }\r\n }));\r\n\r\n return resData;\r\n }\r\n catch (err) {\r\n handleAuthErrors(dispatch, err);\r\n return rejectWithValue(err.body)\r\n }\r\n }\r\n );\r\n\r\nconst planSlice = createSlice({\r\n name: \"@@plan\",\r\n initialState,\r\n reducers: {\r\n },\r\n extraReducers: builder => {\r\n builder.addCase(getMyPlan.fulfilled, (state, action) => {\r\n return action.payload as PlanDTO;\r\n });\r\n builder.addCase(getMyPlan.rejected, (state, action) => {\r\n });\r\n }\r\n});\r\n\r\nexport {\r\n getMyPlan,\r\n downgradePlanAction,\r\n upgradePlanAction,\r\n updatePlanConfiguration\r\n}\r\nexport default planSlice.reducer;","import React from \"react\";\r\nimport { makeStyles, Theme, createStyles } from \"@material-ui/core/styles\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport { getPlan } from \"store/plan/planSelectors\";\r\nimport CustomStepper from \"../common/CustomStepper\";\r\nimport { useEditGroupStepper } from \"./useEditGroupStepper\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n groupRoot: {\r\n width: \"auto\",\r\n margin: `${theme.spacing(2)}px 64px ${theme.spacing(12)}px 64px`,\r\n\r\n \"&::before\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n top: 0,\r\n bottom: 0,\r\n right: 0,\r\n width: \"100vw\",\r\n background: \"linear-gradient(to bottom, #e6e6e6, #fff 520px)\",\r\n borderTop: \"1px solid\" + theme.palette.shades.grey,\r\n zIndex: -1,\r\n }\r\n },\r\n heading: {\r\n fontWeight: 500,\r\n textTransform: \"uppercase\",\r\n },\r\n })\r\n);\r\n\r\ninterface IProps {\r\n groupId: string\r\n}\r\n\r\nconst EditGroupStepper = ({ groupId }: IProps) => {\r\n const classes = useStyles();\r\n const plan = useSelector(getPlan);\r\n\r\n // -- grab data from store\r\n const { currentComponent, labels, activeStep, setStep, ready } = useEditGroupStepper(groupId);\r\n\r\n if (!ready) return null;\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n {ready &&\r\n <>\r\n {currentComponent}\r\n \r\n }\r\n \r\n \r\n );\r\n}\r\n\r\nexport default EditGroupStepper;","\r\nimport ParticipantConfiguration from \"domain/participant/ParticipantConfiguration\";\r\nimport { RawDraftContentState } from \"draft-js\";\r\nimport draftToHtml from \"draftjs-to-html\";\r\nimport moment from \"moment\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { getGroup, updateGroupOverview, updateGroupParticipants } from \"store/group/groupSlice\";\r\nimport { updatePlanConfiguration } from \"store/plan/planSlice\";\r\nimport { getCurrentGroupAnonLinks, getCurrentGroupIsAnonymous, getCurrentGroupOverview, getCurrentGroupParticipants, getCurrentGroupPlanConfiguration } from \"store/ui/uiSelectors\";\r\nimport { clearGroup, setGroupToEdit, updateOverviewSectionAsync, updateParticipantsSectionAsync, updatePlanConfigurationSectionAsync } from \"store/ui/uiSlice\";\r\nimport { GroupOverview, GroupPlanConfiguration } from \"../common\";\r\nimport { IEmailConfiguration, IGroupOverviewEmailConfiguration, IParticipantsConfiguration, IPlanConfiguration } from \"../types\";\r\nimport { useMaxAvailableSlot } from \"../common/useMaxAvailableSlot\";\r\nimport { getPlan } from \"store/plan/planSelectors\";\r\nimport { IDateTime } from \"../common/groupOverview/GroupOverview\";\r\n\r\nexport const useEditGroupStepper = (groupId: string) => {\r\n const dispatch = useDispatch();\r\n const [activeStep, setActiveStep] = useState(0);\r\n const [ready, setReady] = useState(false);\r\n\r\n const groupOverviewValues = useSelector(getCurrentGroupOverview);\r\n const participantsValues = useSelector(getCurrentGroupParticipants);\r\n const anonLinksValues = useSelector(getCurrentGroupAnonLinks);\r\n const isAnonymous = useSelector(getCurrentGroupIsAnonymous);\r\n const planConfigurationValues = useSelector(getCurrentGroupPlanConfiguration);\r\n const planValues = useSelector(getPlan);\r\n const maxAvailableSlot = useMaxAvailableSlot()\r\n\r\n useEffect(() => {\r\n async function getGroupData() {\r\n await dispatch(getGroup(groupId));\r\n await dispatch(setGroupToEdit(groupId))\r\n setReady(true);\r\n }\r\n getGroupData();\r\n }, [groupId])\r\n\r\n const stepperData = [\r\n {\r\n title: \"Overview\",\r\n component: \r\n },\r\n {\r\n title: \"Configure Participants\",\r\n component: ,\r\n },\r\n {\r\n title: \"Configure Tests + Training\",\r\n component: ,\r\n }\r\n ];\r\n\r\n function setStep(step: number) {\r\n setActiveStep(step);\r\n }\r\n\r\n function nextStep() {\r\n if (activeStep < stepperData.length - 1) setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n }\r\n\r\n function prevStep() {\r\n if (activeStep > 0) setActiveStep((prevActiveStep) => prevActiveStep - 1);\r\n }\r\n\r\n async function editGroupOverview(data: IGroupOverviewEmailConfiguration) {\r\n const invitationBodyMarkup = draftToHtml(\r\n data?.emailConfiguration?.invitationEmailBody as unknown as RawDraftContentState,\r\n );\r\n const reminderBodymarkup = draftToHtml(\r\n data?.emailConfiguration?.reminderEmailBody as unknown as RawDraftContentState,\r\n );\r\n\r\n const invitationDate = data.emailConfiguration?.invitationDates.sort(\r\n (a, b) => new Date(a.dateTime).getTime() - new Date(b.dateTime).getTime()\r\n ).map((date: IDateTime) => {\r\n return {\r\n dateTime: moment(date.dateTime).toISOString() ?? \"\",\r\n initialLoaded: date.initialLoaded ?? false\r\n }\r\n }) as IDateTime[];\r\n\r\n const dataSubmission: IGroupOverviewEmailConfiguration = {\r\n ...data,\r\n emailConfiguration: {\r\n ...data?.emailConfiguration,\r\n invitationEmailBody: invitationBodyMarkup,\r\n reminderEmailBody: reminderBodymarkup,\r\n invitationDates: invitationDate\r\n } as IEmailConfiguration\r\n }\r\n\r\n await dispatch(updateOverviewSectionAsync(dataSubmission));\r\n await dispatch(updateGroupOverview());\r\n }\r\n\r\n async function editGroupParticipants(data: IParticipantsConfiguration) {\r\n await dispatch(updateParticipantsSectionAsync(data));\r\n await dispatch(updateGroupParticipants());\r\n }\r\n\r\n async function editPlanConfiguration(data: IPlanConfiguration) {\r\n await dispatch(updatePlanConfigurationSectionAsync(data));\r\n await dispatch(updatePlanConfiguration());\r\n }\r\n\r\n return {\r\n currentComponent: stepperData[activeStep].component,\r\n labels: stepperData.map(x => x.title),\r\n activeStep,\r\n setStep,\r\n ready\r\n }\r\n}","import React from 'react';\r\nimport MainLayout from 'layouts/MainLayout';\r\nimport { RouteComponentProps } from '@reach/router';\r\nimport EditGroupStepper from 'domain/group/editGroup/EditGroupStepper';\r\nimport AddGroupStepper from 'domain/group/addGroup/AddGroupStepper';\r\n\r\ninterface IProps extends RouteComponentProps {\r\n groupId: string\r\n}\r\n\r\nconst Group = ({ groupId }: IProps) => {\r\n if (groupId) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n return (\r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default Group;","import React from 'react';\r\nimport { useSelector } from \"react-redux\";\r\nimport { navigate } from \"@reach/router\";\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport { Grid, Container, Theme, Typography, Button } from '@material-ui/core';\r\nimport MainLayout from 'layouts/MainLayout';\r\nimport { GroupListing } from 'domain/group';\r\nimport { hasPlan as hasPlanSelector } from 'store/plan/planSelectors';\r\nimport { Paths } from 'utils/constants';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n flexGrow: 1,\r\n alignContent: \"flex-start\",\r\n width: \"auto\",\r\n margin: `${theme.spacing(2)}px 64px 0 64px`,\r\n\r\n \"&::before\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n top: 0,\r\n bottom: 0,\r\n right: 0,\r\n width: \"100vw\",\r\n background: \"linear-gradient(to bottom, #e6e6e6, #fff 520px)\",\r\n borderTop: \"1px solid\" + theme.palette.shades.grey,\r\n zIndex: -1,\r\n },\r\n },\r\n heading: {\r\n fontWeight: 500,\r\n textTransform: \"uppercase\",\r\n },\r\n container: {\r\n maxWidth: 400,\r\n },\r\n title: {\r\n fontSize: 20,\r\n fontWeight: 700,\r\n textTransform: \"uppercase\",\r\n marginBottom: 24,\r\n },\r\n message: {\r\n fontSize: 14,\r\n fontWeight: 400,\r\n },\r\n button: {\r\n margin: 'auto',\r\n marginTop: '30px',\r\n padding: \"0 3em\",\r\n },\r\n background: {\r\n background: \"url('/images/general/plan_team.svg') no-repeat left bottom\",\r\n backgroundSize: \"auto 415px\",\r\n minHeight: \"77vh\"\r\n }\r\n }),\r\n);\r\n\r\nconst GroupDashboard = () => {\r\n const classes = useStyles();\r\n const hasPlan = useSelector(hasPlanSelector);\r\n\r\n\r\n\r\n function navigateToPlan() {\r\n navigate(Paths.PLANS);\r\n }\r\n\r\n const GroupNoPlan = () => {\r\n return (\r\n \r\n \r\n Before we begin...\r\n Before you can start creating your groups and tests you will need to choose a plan. Follow the link and select a plan that best fits your needs.\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Groups\r\n \r\n {\r\n hasPlan ? : \r\n }\r\n \r\n \r\n );\r\n}\r\n\r\nexport default GroupDashboard;","import { TextField, makeStyles, Theme } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { FC } from \"react\";\r\n\r\nexport interface InputNumberProps {\r\n name: string;\r\n inputRef: any;\r\n label: string;\r\n placeholder?: string;\r\n error?: boolean;\r\n helperText?: string;\r\n fullWidth?: boolean;\r\n readonly?: boolean;\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n\r\n \"& .MuiInputLabel-root\": {\r\n position: \"relative\",\r\n padding: \"0 0 0.5em 1.25em\",\r\n color: theme.palette.orange.main,\r\n fontSize: 12,\r\n fontWeight: 700,\r\n transform: \"none\",\r\n\r\n },\r\n },\r\n rootInput: {\r\n \"& .MuiOutlinedInput-notchedOutline\": {\r\n border: \"2px solid \" + theme.palette.orange.main + \"!important\",\r\n borderRadius: \"1em\",\r\n\r\n \"& legend\": {\r\n width: 0,\r\n }\r\n },\r\n },\r\n input: {\r\n height: \"2em\",\r\n padding: \"0 1em\",\r\n\r\n \"&::placeholder\": {\r\n fontStyle: \"italic\",\r\n }\r\n },\r\n inputMultiline: {\r\n minHeight: \"8.2em\",\r\n },\r\n}));\r\n\r\nconst FormNumber: FC = ({\r\n name,\r\n inputRef,\r\n label,\r\n placeholder,\r\n error,\r\n helperText,\r\n fullWidth,\r\n readonly = false\r\n}) => {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default FormNumber;","import React from 'react'\r\nimport { useDispatch } from 'react-redux';\r\nimport * as yup from \"yup\";\r\nimport { Button, CardContent, createStyles, Grid, makeStyles, Theme } from '@material-ui/core';\r\nimport FormInput from 'components/formComponents/form-input';\r\nimport FormNumber from 'components/formComponents/form-number';\r\nimport useValidForm from 'hooks/useValidForm';\r\nimport { submitSupportTicketAction } from 'store/ui/uiSlice';\r\nimport { Dispatch } from 'store';\r\nimport CustomCard from 'components/CustomCard';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n contactUsFormRoot: {\r\n flexGrow: 1,\r\n marginTop: theme.spacing(2)\r\n },\r\n cardContent: {\r\n width: '100%',\r\n borderRadius: 10,\r\n boxShadow: \"0 10px 20px 0 rgba(0,0,0,0.25)\",\r\n },\r\n submitButton: {\r\n float: \"right\",\r\n width: \"12em\",\r\n }\r\n }),\r\n);\r\n\r\nexport interface ContactUsFormData {\r\n email: string;\r\n phoneNumber: string;\r\n name: string;\r\n description: string;\r\n}\r\n\r\nconst defaultValues: ContactUsFormData = {\r\n email: '',\r\n name: '',\r\n phoneNumber: '',\r\n description: '',\r\n};\r\n\r\nconst validationSchema = yup.object().shape({\r\n name: yup.string().required('A valid name is required'),\r\n email: yup.string().email('A valid email address is required.').required('A valid email address is required.'),\r\n phoneNumber: yup.string()\r\n .matches(/^[+]?[-()./\\s0-9]*$/, 'A valid phone number is required.')\r\n .required('A valid phone number is required'),\r\n description: yup.string().required(\"The problem description is required\"),\r\n});\r\n\r\nconst ContactUsForm = () => {\r\n const classes = useStyles();\r\n const dispatch: Dispatch = useDispatch();\r\n\r\n const onSubmitFunc = async (formValues: ContactUsFormData) => {\r\n const resultAction = await dispatch(submitSupportTicketAction(formValues));\r\n if (submitSupportTicketAction.fulfilled.match(resultAction)) {\r\n reset()\r\n } else {\r\n }\r\n };\r\n\r\n const { register, errors, reset, onSubmit } = useValidForm(onSubmitFunc, validationSchema, defaultValues);\r\n\r\n return (\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default ContactUsForm;","import React from 'react';\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport { Box, Grid, Theme, Typography } from '@material-ui/core';\r\nimport MainLayout from 'layouts/MainLayout';\r\nimport ContactUsForm from 'domain/support/ContactUsForm';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: \"auto\",\r\n margin: `${theme.spacing(2)}px 64px ${theme.spacing(12)}px 64px`,\r\n\r\n \"&::before\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n top: 0,\r\n bottom: 0,\r\n right: 0,\r\n width: \"100vw\",\r\n background: \"linear-gradient(to bottom, #e6e6e6, #fff 520px)\",\r\n borderTop: \"1px solid\" + theme.palette.shades.grey,\r\n zIndex: -1,\r\n },\r\n },\r\n heading: {\r\n fontWeight: 500,\r\n textTransform: \"uppercase\",\r\n },\r\n box: {\r\n fontWeight: 700,\r\n },\r\n title: {\r\n fontSize: 20,\r\n textTransform: \"uppercase\",\r\n },\r\n }),\r\n);\r\n\r\nconst Support = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n Support\r\n \r\n \r\n \r\n \r\n \r\n

Contact Us Today

\r\n
Please fill out the quick form and we will be in touch right away.
\r\n
\r\n \r\n
\r\n \r\n \r\n

Have any questions using Bias Proof?

\r\n

This is the place to start. Get the answers you need from our amazing support team.

\r\n

Whether you have a question about features, trials, or pricing, our team is ready to answer.

\r\n

Have questions about workplace bias?

\r\n

Our entire team receives specialized training regularly to ensure you are receiving the best possible information. From basic questions to complex compliance inquires, we are here to help. In this case we will work to find a time to provide you access to one of our experts for a one-on-one call.

\r\n

Interested in learning more about our services? Our Team will take the time to discuss your existing bias screening program and help you make smart decisions that best meet your needs.

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Support;","import React from 'react';\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport { Grid, Link, Theme, Typography } from '@material-ui/core';\r\nimport MainLayout from 'layouts/MainLayout';\r\nimport { RouteComponentProps } from '@reach/router';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n flexGrow: 1,\r\n marginTop: theme.spacing(6),\r\n marginBottom: theme.spacing(12),\r\n },\r\n heading: {\r\n marginBottom: 10,\r\n fontSize: 36,\r\n fontWeight: 700,\r\n lineHeight: 1,\r\n },\r\n subheading: {\r\n fontSize: 20,\r\n },\r\n heading2: {\r\n marginTop: 30,\r\n fontSize: 20,\r\n fontWeight: 700,\r\n },\r\n paragraph: {\r\n fontSize: 14,\r\n },\r\n }),\r\n);\r\n\r\n\r\ninterface IProps extends RouteComponentProps {\r\n\r\n}\r\n\r\n\r\nconst Privacy = ({ }: IProps) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n Privacy Policy\r\n \r\n This privacy policy will explain how BiasProof uses the personal data we collect from you when you use our website.\r\n \r\n \r\n Importantly, BiasProof uses a Privacy By Design model. This means that we do not match Personally Identifiable Information about you to information you provide us. What this means is that our systems are designed specifically to ensure that any information you give us as part of testing or training using our platform, (other than an Administrator’s credentials and payment information), is maintained anonymously and cannot be tied back to the individual who provided it.\r\n \r\n \r\n What data do we collect?\r\n \r\n \r\n BiasProof collects the following data:\r\n
    \r\n
  • Demographic information you have chosen to share with us (gender, age, nationality, country of residence, postcode, level of education, and profession)
  • \r\n
  • Data that you input when completing one of our tests (response to open questions and questionnaires)
  • \r\n
\r\n
\r\n \r\n How do we collect your data?\r\n \r\n \r\n You directly provide BiasProof with most of the data we collect. We collect data and process data when you:\r\n
    \r\n
  • Complete one of our online tests conducted by us or on behalf of one of our clients.
  • \r\n
  • Voluntarily complete a customer test or provide feedback on any of our message boards or via email.
  • \r\n
\r\n
\r\n \r\n How will we use your data?\r\n \r\n \r\n BiasProof collects your data so that we can:\r\n
    \r\n
  • Report aggregate, non-personally identifiable data in our HR Administrator portal
  • \r\n
  • Conduct data analysis for internal or external R&D projects
  • \r\n
\r\n BiasProof will not share your data with any third parties.\r\n
\r\n \r\n How do we store your data?\r\n \r\n \r\n BiasProof securely stores your data.\r\n \r\n \r\n BiasProof will keep your data for a maximum of 10 years. Once this time period has expired, we will delete your data.\r\n \r\n \r\n What are your data protection rights?\r\n \r\n \r\n BiasProof want to be fully aware of all of your data protection rights. Every user is entitled to the following:\r\n
    \r\n
  • The right to access
  • \r\n
  • The right to rectification
  • \r\n
  • The right to erasure
  • \r\n
  • The right to restrict processing
  • \r\n
  • The right to data portability
  • \r\n
  • The right to object to processing
  • \r\n
\r\n BiasProof does not track you or keep record of your scores, results or any inputs that it can connect to you as an individual user, and therefore does not have access to, and cannot give you access to, your data since we can’t identify your data once it has been collected.\r\n
\r\n \r\n If you make a request, we have one month to respond to you. If you would like to exercise any of these rights, please contact us at our email support@biasproof.com.\r\n \r\n \r\n Cookies\r\n \r\n \r\n Cookies are text files placed on your computer to collect standard Internet log information and visitor behaviour information. We only use cookies to handle login information for Administrators using the Administrator Portal of our site. For further information, visit allaboutcookies.org.\r\n \r\n \r\n What types of cookies do we use?\r\n \r\n \r\n There are several different types of cookies. Our website uses:\r\n
    \r\n
  • Functionality: BiasProof uses these cookies so that we recognize you on our website and remember your previously selected preferences. These could include what language you prefer or your location and location you are in. A mix of first-party and third-party cookies are used.
  • \r\n
\r\n
\r\n \r\n How to manage cookies\r\n \r\n \r\n You can set your browser not to accept cookies, and the above website tells you how to remove cookies from your browser. However, in a few cases, some of our website features may not function as a result.\r\n \r\n \r\n Changes to our privacy policy\r\n \r\n \r\n BiasProof keeps its privacy policy under regular review and places any updates on this web page. This privacy policy was last updated on 20th May, 2021.\r\n \r\n \r\n How to contact us\r\n \r\n \r\n If you have any questions about BiasProof’s privacy policy, the data we hold on you, or you would like to exercise one of your data protection rights, please do not hesitate to contact us. Email us at: support@biasproof.com.\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Privacy;","import React from 'react';\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport { Grid, Link, Theme, Typography } from '@material-ui/core';\r\nimport MainLayout from 'layouts/MainLayout';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n flexGrow: 1,\r\n marginTop: theme.spacing(6),\r\n marginBottom: theme.spacing(12),\r\n },\r\n heading: {\r\n marginBottom: 10,\r\n fontSize: 36,\r\n fontWeight: 700,\r\n lineHeight: 1,\r\n },\r\n subheading: {\r\n fontSize: 20,\r\n },\r\n heading2: {\r\n marginTop: 30,\r\n fontSize: 20,\r\n fontWeight: 700,\r\n },\r\n paragraph: {\r\n marginBottom: \"1em\",\r\n fontSize: 14,\r\n },\r\n }),\r\n);\r\n\r\nconst About = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n About Us\r\n \r\n BiasProof is a custom Artificial Intelligence based Solution that helps people gain a deeper understanding of their own unconscious biases.\r\n \r\n \r\n We believe that people are inherently good. We also believe that people want to improve themselves and be the best that they can be. When it comes to our biases, we were either born with them, or we've developed them from societal experience. Things like Hollywood Movies, and even modern music can influence out subconscious biases. They're not our fault, but they are our responsibility.\r\n \r\n \r\n Knowing that people want to change, and knowing that the first step in personal change is admitting you have a problem that needs to be addressed, we created BiasProof. Our goal is to help you, in the inherent privacy afforded to you by using your mobile device, and our Privacy by Design model, to test yourself for bias, and know where you stand.\r\n \r\n \r\n This is the first step, and if you're reading this, we're honoured you've chosen to take this journey with us!\r\n \r\n \r\n biasproof.com\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default About;","import React from 'react'\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport { Tab, Tabs } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n indicator: {\r\n display: 'block',\r\n left: '0px',\r\n width: '0',\r\n height: '0px !important',\r\n border: '9px solid transparent',\r\n marginTop: '8px',\r\n borderLeft: '10px solid #c8602a',\r\n backgroundColor: 'transparent !important'\r\n },\r\n accountTabsRoot: {\r\n },\r\n accountTabsItem: {\r\n color: '#C8602A',\r\n textTransform: 'uppercase',\r\n textAlign: 'left',\r\n alignItems: 'flex-start',\r\n \"& > span\": {\r\n color: \"#C8602A\",\r\n fontWeight: 600,\r\n paddingLeft: '10px',\r\n textAlign: 'left',\r\n alignItems: 'flex-start',\r\n cursor: \"pointer\",\r\n }\r\n }\r\n })\r\n);\r\n\r\nfunction a11yProps(index: number) {\r\n return {\r\n id: `vertical-tab-${index}`,\r\n 'aria-controls': `vertical-tabpanel-${index}`,\r\n };\r\n}\r\n\r\ninterface AccountTabsProps {\r\n accountTabsList: { title: string, render: () => React.ReactNode }[]\r\n onTabChange: (n: React.SetStateAction) => void;\r\n};\r\n\r\nconst AccountTabs = ({ accountTabsList, onTabChange }: AccountTabsProps) => {\r\n const classes = useStyles();\r\n const [value, setValue] = React.useState(0);\r\n\r\n const handleChange = (event: any, newValue: React.SetStateAction) => {\r\n setValue(newValue);\r\n onTabChange(newValue);\r\n };\r\n\r\n return (\r\n \r\n {accountTabsList.map((tab: { title: string, render: () => React.ReactNode }, i) => {\r\n return ()\r\n })}\r\n \r\n )\r\n}\r\n\r\nexport default AccountTabs;","import { TextField, makeStyles, Theme, InputAdornment } from \"@material-ui/core\";\r\nimport { AccountCircle } from \"@material-ui/icons\";\r\nimport React from \"react\";\r\nimport { FC } from \"react\";\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nexport interface InputProps {\r\n name: string;\r\n inputRef?: any;\r\n type?: \"text\" | \"email\" | \"password\";\r\n label?: string;\r\n placeholder?: string;\r\n error?: boolean;\r\n helperText?: string;\r\n rows?: number;\r\n disabled?: boolean;\r\n fullWidth?: boolean;\r\n multiline?: boolean;\r\n readonly?: boolean;\r\n onEdit?: () => any\r\n value?: any\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n\r\n \"& .MuiInputLabel-root\": {\r\n position: \"relative\",\r\n padding: \"0 0 0.5em 1.25em\",\r\n color: theme.palette.orange.main,\r\n fontSize: 12,\r\n fontWeight: 700,\r\n transform: \"none\",\r\n },\r\n\r\n \"& .MuiOutlinedInput-multiline\": {\r\n padding: \"0.5em 1em\",\r\n },\r\n },\r\n rootInput: {\r\n \"& .MuiOutlinedInput-notchedOutline\": {\r\n border: \"2px solid \" + theme.palette.orange.main + \"!important\",\r\n borderRadius: \"1em\",\r\n\r\n \"& legend\": {\r\n width: 0,\r\n }\r\n },\r\n },\r\n input: {\r\n height: \"2em\",\r\n padding: \"0 1em\",\r\n\r\n \"&::placeholder\": {\r\n fontStyle: \"italic\",\r\n }\r\n },\r\n inputMultiline: {\r\n minHeight: \"8.2em\",\r\n padding: 0,\r\n },\r\n editIcon: {\r\n color: \"#9e9e9e\",\r\n fontSize: \"1em\",\r\n cursor: \"pointer\"\r\n }\r\n}));\r\n\r\nconst EditableFormInput: FC = ({\r\n name,\r\n inputRef,\r\n type = \"text\",\r\n label,\r\n placeholder,\r\n error,\r\n value,\r\n helperText,\r\n rows = 1,\r\n onEdit,\r\n disabled = false,\r\n fullWidth = true,\r\n multiline = false,\r\n readonly = false\r\n}) => {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {readonly &&\r\n \r\n \r\n \r\n }\r\n \r\n ),\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default EditableFormInput;","import React from \"react\";\r\nimport { makeStyles, Theme, createStyles, withStyles, DialogTitleProps, IconButton, DialogContent } from \"@material-ui/core\";\r\nimport MuiDialog from '@material-ui/core/Dialog';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n modalHeading: {\r\n fontSize: \"1.1875rem\",\r\n fontWeight: 400,\r\n textTransform: \"capitalize\",\r\n color: \"white\",\r\n backgroundColor: \"#D42C22\",\r\n padding: '8px 24px 8px 16px',\r\n },\r\n headerTitle: {\r\n display: 'block',\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"12px\",\r\n fontWeight: 300,\r\n },\r\n headerSubtitle: {\r\n display: 'block',\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"18px\",\r\n fontWeight: 900,\r\n textTransform: \"uppercase\",\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n padding: '4px',\r\n },\r\n }),\r\n);\r\n\r\ninterface IProps {\r\n type: \"alert\" | \"confirm\";\r\n pretitle: string;\r\n title: string;\r\n isOpen: boolean;\r\n handleModalClose: () => void;\r\n children: any,\r\n}\r\n\r\nconst StyledModal = ({ type, pretitle, title, handleModalClose, isOpen, children }: IProps) => {\r\n const classes = useStyles();\r\n\r\n const Dialog = withStyles((theme: Theme) => ({\r\n paper: {\r\n height: \"auto\",\r\n width: 320,\r\n borderRadius: \"1rem\",\r\n },\r\n }))(MuiDialog);\r\n\r\n const DialogTitle = (props: DialogTitleProps) => {\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {pretitle}\r\n {title}\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default StyledModal;","import React, { useState } from 'react'\r\nimport * as yup from 'yup';\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport { Button, Grid, Typography } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { countries } from \"countries-list\";\r\nimport { getUser } from 'store/user/userSelector';\r\nimport useValidForm from 'hooks/useValidForm';\r\nimport FormInput from 'components/formComponents/form-input';\r\nimport FormNumber from 'components/formComponents/form-number';\r\nimport FormSelect from 'components/formComponents/form-select';\r\nimport EditableFormInput from 'components/formComponents/editable-form-input';\r\nimport StyledModal from 'components/StyledModal';\r\nimport { Divider } from '@material-ui/core';\r\nimport CustomButton from 'components/CustomButton';\r\nimport { updateEmailAction, updateUserInfoAction } from 'store/user/userSlice';\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n modalHeader: {\r\n fontWeight: 600,\r\n fontSize: \"1.3em\",\r\n marginTop: \"5px\"\r\n },\r\n divider: {\r\n backgroundColor: \"lightgray\",\r\n width: \"100%\"\r\n },\r\n modalFooter: {\r\n fontSize: '0.9em',\r\n textAlign: \"center\"\r\n },\r\n saveButton: {\r\n minWidth: \"150px\"\r\n },\r\n buttonContainer: {\r\n textAlign: \"center\"\r\n }\r\n })\r\n);\r\n\r\n\r\ninterface UpdateNameModalFormData extends UpdateNameFormData {\r\n onClose: () => void\r\n}\r\n\r\nconst validationSchema = yup.object().shape({\r\n firstName: yup.string().required('First name is required'),\r\n lastName: yup.string().required('Last name is required'),\r\n});\r\n\r\nconst ModalContents = ({ firstName, lastName, onClose }: UpdateNameModalFormData) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const onSubmitFunc = async (formValues: UpdateNameFormData) => {\r\n await dispatch(updateUserInfoAction({ firstName: formValues.firstName, lastName: formValues.lastName }));\r\n onClose();\r\n }\r\n\r\n const { register, control, errors, onSubmit } = useValidForm(onSubmitFunc, validationSchema, { firstName, lastName });\r\n\r\n return (\r\n
\r\n \r\n \r\n Changes to your name will be reflected across your account.\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Team members can see this when they communicate with you or view content you create in BiasProof. For more information, contact our support staff.\r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\ninterface UpdateNameFormData {\r\n firstName: string;\r\n lastName: string;\r\n}\r\nconst EditName = ({ firstName, lastName }: UpdateNameFormData) => {\r\n const classes = useStyles();\r\n\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n function closeModal() {\r\n setShowModal(false);\r\n }\r\n\r\n return (\r\n <>\r\n setShowModal(true)}\r\n />\r\n\r\n setShowModal(false)}\r\n >\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default EditName;","import React, { useState } from 'react'\r\nimport * as yup from 'yup';\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport { Button, Grid, Typography } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { countries } from \"countries-list\";\r\nimport { getUser } from 'store/user/userSelector';\r\nimport useValidForm from 'hooks/useValidForm';\r\nimport FormInput from 'components/formComponents/form-input';\r\nimport FormNumber from 'components/formComponents/form-number';\r\nimport FormSelect from 'components/formComponents/form-select';\r\nimport EditableFormInput from 'components/formComponents/editable-form-input';\r\nimport StyledModal from 'components/StyledModal';\r\nimport { Divider } from '@material-ui/core';\r\nimport CustomButton from 'components/CustomButton';\r\nimport { updateEmailAction, updatePasswordAction, updateUserInfoAction } from 'store/user/userSlice';\r\nimport { UpdateEmailDto, UpdatePasswordDto } from 'external-api/account-api';\r\nimport { Dispatch } from 'store';\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n modalHeader: {\r\n fontWeight: 600,\r\n fontSize: \"1.3em\",\r\n marginTop: \"5px\"\r\n },\r\n divider: {\r\n backgroundColor: \"lightgray\",\r\n width: \"100%\"\r\n },\r\n modalFooter: {\r\n fontSize: '0.9em',\r\n textAlign: \"center\"\r\n },\r\n saveButton: {\r\n minWidth: \"150px\"\r\n },\r\n buttonContainer: {\r\n textAlign: \"center\"\r\n }\r\n })\r\n);\r\n\r\n\r\n\r\nconst validationSchema = yup.object().shape({\r\n email: yup.string().email('A valid email address is required.').required('A valid email address is required.'),\r\n confirmEmail: yup.string()\r\n .oneOf([yup.ref('email'), null], 'Passwords must match'),\r\n});\r\n\r\ninterface UpdateEmailModalFormData {\r\n onClose: () => void\r\n}\r\n\r\nconst ModalContents = ({ onClose }: UpdateEmailModalFormData) => {\r\n const classes = useStyles();\r\n const dispatch: Dispatch = useDispatch();\r\n const onSubmitFunc = async (formValues: UpdateEmailFormData) => {\r\n const resp = await dispatch(updateEmailAction({ email: formValues.email }));\r\n\r\n if (updateEmailAction.fulfilled.match(resp)) {\r\n onClose();\r\n } else {\r\n }\r\n }\r\n\r\n const { register, control, errors, onSubmit } = useValidForm(onSubmitFunc, validationSchema);\r\n\r\n return (\r\n
\r\n \r\n \r\n Changes to your Email will be reflected across your account.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Team members can see this when they communicate with you or view content you create in BiasProof. For more information, contact our support staff.\r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\ninterface UpdateEmailFormData {\r\n email: string\r\n confirmEmail: string\r\n}\r\nconst EditEmail = ({ email }: { email: string }) => {\r\n const classes = useStyles();\r\n\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n function closeModal() {\r\n setShowModal(false);\r\n }\r\n\r\n return (\r\n <>\r\n setShowModal(true)}\r\n />\r\n\r\n setShowModal(false)}\r\n >\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default EditEmail;","import React from 'react'\r\nimport * as yup from 'yup';\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport { Grid, Typography } from '@material-ui/core';\r\nimport { useSelector } from 'react-redux';\r\nimport { countries } from \"countries-list\";\r\nimport { getUser } from 'store/user/userSelector';\r\nimport useValidForm from 'hooks/useValidForm';\r\nimport FormInput from 'components/formComponents/form-input';\r\nimport FormNumber from 'components/formComponents/form-number';\r\nimport FormSelect from 'components/formComponents/form-select';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n\r\n })\r\n);\r\n\r\nconst EditCompanyName = () => {\r\n\r\n const classes = useStyles();\r\n const user = useSelector(getUser)\r\n\r\n\r\n return (\r\n <>\r\n \r\n )\r\n}\r\n\r\nexport default EditCompanyName;","import React, { useState } from 'react'\r\nimport * as yup from 'yup';\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport { Button, Grid, Typography } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { countries } from \"countries-list\";\r\nimport { getUser } from 'store/user/userSelector';\r\nimport useValidForm from 'hooks/useValidForm';\r\nimport FormInput from 'components/formComponents/form-input';\r\nimport FormNumber from 'components/formComponents/form-number';\r\nimport FormSelect from 'components/formComponents/form-select';\r\nimport EditableFormInput from 'components/formComponents/editable-form-input';\r\nimport StyledModal from 'components/StyledModal';\r\nimport { Divider } from '@material-ui/core';\r\nimport CustomButton from 'components/CustomButton';\r\nimport { updateEmailAction, updatePasswordAction, updateUserInfoAction } from 'store/user/userSlice';\r\nimport { UpdateEmailDto, UpdatePasswordDto } from 'external-api/account-api';\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n modalHeader: {\r\n fontWeight: 600,\r\n fontSize: \"1.3em\",\r\n marginTop: \"5px\"\r\n },\r\n divider: {\r\n backgroundColor: \"lightgray\",\r\n width: \"100%\"\r\n },\r\n modalFooter: {\r\n fontSize: '0.9em',\r\n textAlign: \"center\"\r\n },\r\n saveButton: {\r\n minWidth: \"150px\"\r\n },\r\n buttonContainer: {\r\n textAlign: \"center\"\r\n }\r\n })\r\n);\r\n\r\n\r\n\r\nconst validationSchema = yup.object().shape({\r\n oldPassword: yup.string().required('Password is required'),\r\n password: yup.string()\r\n .required('Password is required.')\r\n .min(8, 'Password is too short, should be at least 8 characters.')\r\n .matches(/^(?=.*?[A-Z]).*/, \"Password must contain at least one uppercase letter.\"),\r\n confirmPassword: yup.string()\r\n .oneOf([yup.ref('password'), null], 'Passwords must match'),\r\n});\r\ninterface UpdatePasswordFormData {\r\n password: string\r\n confirmPassword: string\r\n oldPassword: string\r\n}\r\nconst ModalContents = ({ onClose }: { onClose: () => void }) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const onSubmitFunc = async (formValues: UpdatePasswordFormData) => {\r\n const data: UpdatePasswordDto = {\r\n currentPassword: formValues.oldPassword,\r\n newPassword: formValues.password,\r\n confirmPassword: formValues.confirmPassword\r\n }\r\n\r\n await dispatch(updatePasswordAction(data));\r\n onClose();\r\n }\r\n\r\n const { register, control, errors, onSubmit } = useValidForm(onSubmitFunc, validationSchema);\r\n\r\n return (\r\n
\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\n\r\n\r\nconst EditPassword = () => {\r\n const classes = useStyles();\r\n\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n function closeModal() {\r\n setShowModal(false);\r\n }\r\n\r\n return (\r\n <>\r\n setShowModal(true)}\r\n />\r\n\r\n setShowModal(false)}\r\n >\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default EditPassword;","import React, { useState } from 'react'\r\nimport * as yup from 'yup';\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport { Button, Grid, Typography } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { countries } from \"countries-list\";\r\nimport { getUser } from 'store/user/userSelector';\r\nimport useValidForm from 'hooks/useValidForm';\r\nimport FormInput from 'components/formComponents/form-input';\r\nimport FormNumber from 'components/formComponents/form-number';\r\nimport FormSelect from 'components/formComponents/form-select';\r\nimport EditableFormInput from 'components/formComponents/editable-form-input';\r\nimport StyledModal from 'components/StyledModal';\r\nimport { Divider } from '@material-ui/core';\r\nimport CustomButton from 'components/CustomButton';\r\nimport { updateEmailAction, updateUserInfoAction } from 'store/user/userSlice';\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n modalHeader: {\r\n fontWeight: 600,\r\n fontSize: \"1.3em\",\r\n marginTop: \"5px\"\r\n },\r\n divider: {\r\n backgroundColor: \"lightgray\",\r\n width: \"100%\"\r\n },\r\n modalFooter: {\r\n fontSize: '0.9em',\r\n textAlign: \"center\"\r\n },\r\n saveButton: {\r\n minWidth: \"150px\"\r\n },\r\n buttonContainer: {\r\n textAlign: \"center\"\r\n }\r\n })\r\n);\r\n\r\n\r\ninterface UpdatePhoneModalFormData extends UpdatePhoneFormData {\r\n onClose: () => void\r\n}\r\n\r\nconst validationSchema = yup.object().shape({\r\n phoneNumber: yup.string()\r\n .typeError('A valid phone number is required')\r\n .required('A valid phone number is required'),\r\n ext: yup.string(),\r\n});\r\n\r\nconst ModalContents = ({ phoneNumber, extension, onClose }: UpdatePhoneModalFormData) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const onSubmitFunc = async (formValues: UpdatePhoneFormData) => {\r\n await dispatch(updateUserInfoAction({ phoneNumber: formValues.phoneNumber, phoneNumberExt: formValues.extension }));\r\n }\r\n\r\n const { register, control, errors, onSubmit } = useValidForm(onSubmitFunc, validationSchema, { phoneNumber, extension });\r\n\r\n return (\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\ninterface UpdatePhoneFormData {\r\n phoneNumber: string;\r\n extension: string;\r\n}\r\nconst EditPhoneNumber = ({ phoneNumber, extension }: UpdatePhoneFormData) => {\r\n const classes = useStyles();\r\n\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n function closeModal() {\r\n setShowModal(false);\r\n }\r\n\r\n return (\r\n <>\r\n setShowModal(true)}\r\n />\r\n\r\n setShowModal(false)}\r\n >\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default EditPhoneNumber;","import React, { useState } from 'react'\r\nimport * as yup from 'yup';\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport { Button, Grid, Typography } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { countries } from \"countries-list\";\r\nimport { getUser } from 'store/user/userSelector';\r\nimport useValidForm from 'hooks/useValidForm';\r\nimport FormInput from 'components/formComponents/form-input';\r\nimport FormNumber from 'components/formComponents/form-number';\r\nimport FormSelect from 'components/formComponents/form-select';\r\nimport EditableFormInput from 'components/formComponents/editable-form-input';\r\nimport StyledModal from 'components/StyledModal';\r\nimport { Divider } from '@material-ui/core';\r\nimport CustomButton from 'components/CustomButton';\r\nimport { updateEmailAction, updateUserInfoAction } from 'store/user/userSlice';\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n modalHeader: {\r\n fontWeight: 600,\r\n fontSize: \"1.3em\",\r\n marginTop: \"5px\"\r\n },\r\n divider: {\r\n backgroundColor: \"lightgray\",\r\n width: \"100%\"\r\n },\r\n modalFooter: {\r\n fontSize: '0.9em',\r\n textAlign: \"center\"\r\n },\r\n saveButton: {\r\n minWidth: \"150px\"\r\n },\r\n buttonContainer: {\r\n textAlign: \"center\"\r\n }\r\n })\r\n);\r\n\r\n\r\ninterface UpdateJobTitleModalFormData extends UpdateJobTitleFormData {\r\n onClose: () => void\r\n}\r\n\r\nconst validationSchema = yup.object().shape({\r\n jobTitle: yup.string().required('Job title is required'),\r\n});\r\n\r\nconst ModalContents = ({ jobTitle, onClose }: UpdateJobTitleModalFormData) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const onSubmitFunc = async (formValues: UpdateJobTitleFormData) => {\r\n await dispatch(updateUserInfoAction({ jobTitle: formValues.jobTitle }));\r\n onClose();\r\n }\r\n\r\n const { register, control, errors, onSubmit } = useValidForm(onSubmitFunc, validationSchema, { jobTitle });\r\n\r\n return (\r\n
\r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\ninterface UpdateJobTitleFormData {\r\n jobTitle: string;\r\n\r\n}\r\nconst EditCompanyName = ({ jobTitle }: UpdateJobTitleFormData) => {\r\n const classes = useStyles();\r\n\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n function closeModal() {\r\n setShowModal(false);\r\n }\r\n\r\n return (\r\n <>\r\n setShowModal(true)}\r\n />\r\n\r\n setShowModal(false)}\r\n >\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default EditCompanyName;","import React, { useState } from 'react'\r\nimport * as yup from 'yup';\r\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\r\nimport { Grid, Typography } from '@material-ui/core';\r\nimport { useSelector } from 'react-redux';\r\nimport { countries } from \"countries-list\";\r\nimport { getUser } from 'store/user/userSelector';\r\nimport useValidForm from 'hooks/useValidForm';\r\nimport FormInput from 'components/formComponents/form-input';\r\nimport FormNumber from 'components/formComponents/form-number';\r\nimport FormSelect from 'components/formComponents/form-select';\r\nimport StyledModal from 'components/StyledModal';\r\nimport { EditEmail, EditJobTitle, EditName, EditPassword, EditPhoneNumber } from './edit-account';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n '& .MuiInputLabel-outlined.MuiInputLabel-shrink': {\r\n color: \"#c8602a\",\r\n }\r\n },\r\n accountInfoRoot: {\r\n },\r\n title: {\r\n fontSize: 24,\r\n fontWeight: 800,\r\n textTransform: \"uppercase\",\r\n marginBottom: theme.spacing(1),\r\n },\r\n })\r\n);\r\n\r\ninterface AccountInfoFormData {\r\n firstName: string;\r\n lastName: string;\r\n companyName: string;\r\n jobTitle: string;\r\n country: string;\r\n phoneNumber: string;\r\n ext: string;\r\n email: string;\r\n password: string;\r\n websiteUrl?: boolean;\r\n}\r\n\r\nconst validationSchema = yup.object().shape({\r\n firstName: yup.string().required('First name is required'),\r\n lastName: yup.string().required('Last name is required'),\r\n companyName: yup.string().required('Company name is required'),\r\n jobTitle: yup.string().required('Job title is required'),\r\n country: yup.string().required(\"Country is required\"),\r\n phoneNumber: yup.string()\r\n .typeError('A valid phone number is required')\r\n .required('A valid phone number is required'),\r\n ext: yup.string(),\r\n email: yup.string().email('A valid email address is required.').required('A valid email address is required.'),\r\n password: yup.string().required('Password is required'),\r\n websiteUrl: yup.string().required('Website URL is required'),\r\n})\r\n\r\nconst ListOfCountries = Object.entries(countries)\r\n .map(([countryCode, countryData]) => ({ label: countryData.name, value: countryCode }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1);\r\n\r\nconst AccountInfo = () => {\r\n\r\n const classes = useStyles();\r\n const user = useSelector(getUser)\r\n const [showEditFormModal, setShowEditFormModal] = useState({\r\n open: false,\r\n\r\n });\r\n\r\n const onSubmitFunc = (formValues: AccountInfoFormData) => {\r\n }\r\n\r\n const { register, control, errors, onSubmit } = useValidForm(onSubmitFunc, validationSchema, user);\r\n\r\n return (\r\n \r\n \r\n Account Information\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n )\r\n}\r\n\r\nexport default AccountInfo;","import React from 'react';\r\nimport { createStyles, makeStyles, Theme, Tooltip } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n notificationBadgeRoot: {\r\n display: \"inline-block\",\r\n margin: \"0px 4px\",\r\n },\r\n dot: {\r\n height: 12,\r\n width: 12,\r\n backgroundColor: theme.palette.orange.main,\r\n border: \"2px solid white\",\r\n borderRadius: \"50%\",\r\n boxShadow: \"0px 1px 2px grey\",\r\n display: \"inline-block\",\r\n },\r\n arrow: {\r\n \"&:before\": {\r\n border: \"1px solid #DB5205\"\r\n },\r\n color: \"#F2F2F2\",\r\n },\r\n tooltip: {\r\n backgroundColor: \"#F2F2F2\",\r\n border: \"1px solid #DB5205\",\r\n borderRadius: \"2.5em\",\r\n color: \"#4A4A4A\",\r\n boxShadow: \"0px 1px 2px grey\",\r\n fontSize: 12,\r\n lineHeight: \"2.5em\",\r\n }\r\n })\r\n);\r\n\r\ninterface IProps {\r\n}\r\n\r\nconst NotificationBadge = ({ }: IProps) => {\r\n\r\n const classes = useStyles();\r\n const [open, setOpen] = React.useState(true);\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default NotificationBadge;","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { createStyles, Grid, makeStyles, Theme } from '@material-ui/core';\r\nimport NotificationBadge from \"components/NotificationBadge\";\r\nimport { getPlan, hasPlan as hasPlanSelector } from 'store/plan/planSelectors';\r\nimport { getGroupList } from 'store/group/groupSelectors';\r\nimport { getIsPlanUpgradeCompleted } from 'store/ui/uiSelectors';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n subscriptionInfoRoot: {\r\n },\r\n title: {\r\n fontSize: \"20pt\",\r\n fontWeight: 700,\r\n textTransform: \"uppercase\",\r\n marginBottom: theme.spacing(1),\r\n },\r\n fieldLabel: {\r\n fontSize: 14,\r\n fontWeight: 700,\r\n color: theme.palette.orange.main,\r\n paddingTop: theme.spacing(2)\r\n },\r\n fieldValue: {\r\n color: theme.palette.orange.main,\r\n fontSize: 28,\r\n fontWeight: 900,\r\n lineHeight: 1.2,\r\n },\r\n link: {\r\n fontSize: 16,\r\n fontWeight: 700,\r\n textTransform: \"uppercase\",\r\n padding: \"8px 0px\",\r\n \"& a\": {\r\n color: theme.palette.orange.main,\r\n fontWeight: 700,\r\n textDecoration: \"none\",\r\n \"&:hover, &:focus\": {\r\n textDecoration: \"underline\",\r\n }\r\n }\r\n },\r\n })\r\n);\r\n\r\ninterface IProps {\r\n}\r\n\r\nconst SubscriptionInfo = ({ }: IProps) => {\r\n\r\n const classes = useStyles();\r\n\r\n const hasPlan = useSelector(hasPlanSelector);\r\n const plan = useSelector(getPlan);\r\n const groups = useSelector(getGroupList);\r\n const planUpgraded = useSelector(getIsPlanUpgradeCompleted);\r\n // const planDowngraded = useSelector(getIsPlanDowngraded);\r\n\r\n const totalNumberOfSlotsUsed = groups.map(group => group.numberOfSlotsUsed).reduce((a, b) => a + b, 0);\r\n\r\n return (\r\n
\r\n \r\n \r\n {hasPlan &&\r\n <>\r\n
Licenses Purchased:{planUpgraded && }
\r\n
{plan.price === 0 ? \"Free (5 licenses)\" : (plan.currentSubscription?.quantity ?? plan.features?.maxNumEmailUsers)}
\r\n
Licenses Available:
\r\n
{(plan.currentSubscription?.quantity ?? plan.features?.maxNumEmailUsers) ? ((plan.currentSubscription?.quantity ?? plan.features?.maxNumEmailUsers ?? 0) - totalNumberOfSlotsUsed) : 0}
\r\n \r\n }\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SubscriptionInfo;","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport { navigate } from \"@reach/router\";\r\nimport { createStyles, makeStyles, Theme, Button, Typography } from '@material-ui/core';\r\nimport { Paths } from 'utils/constants';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n },\r\n wrapper: {\r\n width: 800,\r\n margin: \"0 auto\",\r\n },\r\n header: {\r\n fontWeight: 500,\r\n textTransform: \"uppercase\",\r\n },\r\n heading: {\r\n fontSize: 36,\r\n fontWeight: 700,\r\n lineHeight: 1,\r\n\r\n \"& sup ~ sup\": {\r\n color: theme.palette.orange.main,\r\n fontWeight: 700,\r\n }\r\n },\r\n subheading: {\r\n margin: \"15px 0\",\r\n fontSize: 20,\r\n lineHeight: 1,\r\n },\r\n content: {\r\n fontSize: 14,\r\n lineHeight: 1.15,\r\n\r\n \"& a\": {\r\n color: \"#29ABE2\",\r\n fontWeight: 700,\r\n textDecoration: \"none\",\r\n\r\n \"&:hover, &:focus\": {\r\n textDecoration: \"underline\",\r\n }\r\n }\r\n },\r\n subheading2: {\r\n margin: \"30px 0 0 \",\r\n fontSize: 18,\r\n fontWeight: 900,\r\n textTransform: \"uppercase\",\r\n lineHeight: 1,\r\n },\r\n image: {\r\n display: \"block\",\r\n width: \"100%\",\r\n height: \"auto\",\r\n },\r\n border: {\r\n border: \"2px solid #C8602A\",\r\n borderRadius: 8,\r\n boxShadow: \"4px 6px 6px 0 rgba(0,0,0,0.25)\",\r\n },\r\n list: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n margin: \"0 -10px\",\r\n padding: 0,\r\n listStyle: \"none\",\r\n },\r\n listItem: {\r\n display: \"block\",\r\n width: `calc(100% / 5)`,\r\n padding: \"0 10px 15px 10px\",\r\n marginTop: 10,\r\n },\r\n listItemImageWrapper: {\r\n display: \"block\",\r\n width: \"100%\",\r\n height: 172,\r\n },\r\n listItemImage: {\r\n display: \"block\",\r\n width: \"100%\",\r\n maxHeight: \"100%\",\r\n },\r\n listItemText: {\r\n display: \"block\",\r\n padding: \"0 5px 0 10px\",\r\n fontSize: 14,\r\n textAlign: \"center\",\r\n lineHeight: 1.15,\r\n },\r\n button: {\r\n margin: 'auto',\r\n marginTop: '30px',\r\n padding: \"0 3em\",\r\n },\r\n buttons: {\r\n display: \"flex\",\r\n }\r\n }),\r\n);\r\n\r\ninterface IProps {\r\n step: \"plan\" | \"group\";\r\n};\r\n\r\nconst Intro = ({ step }: IProps) => {\r\n const classes = useStyles();\r\n\r\n function navigateToPlan() {\r\n navigate(Paths.PLANS);\r\n }\r\n\r\n function navigateToGroup() {\r\n navigate(`${Paths.GROUPS}/add`);\r\n }\r\n\r\n return (\r\n
\r\n Welcome to BiasProof®BETA\r\n BiasProof® People Make BiasProof® Companies\r\n We are thrilled that you have joined the BiasProof® beta release, an exciting program created for your company and its most valuable assets in mind, your employees. With your help, we hope to fully test and improve our product in real-world scenarios before being released. For more information, visit www.biasproof.com to get an overview of our service and why it is important, now more than ever, for companies like yours to incorporate BiasProof® into your business ecosystem.\r\n Setting Up Your First Bias Test\r\n\r\n
    \r\n
  • \r\n
    \r\n Step 1\r\n
    \r\n Select a plan that best suits your company’s needs\r\n
  • \r\n
  • \r\n
    \r\n Step 2\r\n
    \r\n Create a group that will be participate and assign bias tests to your group\r\n
  • \r\n
  • \r\n
    \r\n Step 3\r\n
    \r\n Add training modules to tests that will inform and guide your group\r\n
  • \r\n
  • \r\n
    \r\n Step 4\r\n
    \r\n Set up and send email invites and reminders\r\n
  • \r\n
  • \r\n
    \r\n Step 5\r\n
    \r\n Monitor your groups from the dashboard for results and data\r\n
  • \r\n
\r\n
\r\n {\r\n step === \"plan\" &&\r\n \r\n }\r\n {\r\n step === \"group\" &&\r\n \r\n }\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Intro;","import React from \"react\";\r\nimport { FC } from \"react\";\r\nimport * as yup from 'yup';\r\nimport useValidForm from \"hooks/useValidForm\";\r\nimport { createStyles, Grid, makeStyles, Theme } from \"@material-ui/core\";\r\nimport FormInput from \"components/formComponents/form-input\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Dispatch } from \"store\";\r\nimport ErrorButton from \"components/ErrorButton\";\r\n\r\ninterface IProps {\r\n}\r\n\r\ninterface FormData {\r\n email: string;\r\n password: string;\r\n}\r\n\r\nconst defaultValues: FormData = {\r\n email: \"\",\r\n password: \"\"\r\n}\r\n\r\nconst validationSchema = yup.object().shape({\r\n email: yup.string().email('A valid email address is required.').required('A valid email address is required.'),\r\n password: yup.string().required('Password is required'),\r\n})\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n submitButton: {\r\n textAlign: 'center',\r\n },\r\n labelTitle: {\r\n fontSize: \"20pt\",\r\n textAlign: \"center\",\r\n },\r\n }),\r\n);\r\n\r\n\r\nconst DeleteAccountModalForm: FC = () => {\r\n\r\n const classes = useStyles();\r\n const dispatch: Dispatch = useDispatch()\r\n\r\n const onSubmitFunc = async (formValues: FormData) => {\r\n }\r\n\r\n const { register, errors, onSubmit } = useValidForm(onSubmitFunc, validationSchema, defaultValues);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default DeleteAccountModalForm;","import React, { useState } from 'react';\r\nimport theme from 'theme'\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport { Theme, Typography, withStyles, Button, Box, TextField, Collapse } from '@material-ui/core';\r\nimport MuiCard from '@material-ui/core/Card';\r\nimport MuiCardHeader from '@material-ui/core/CardHeader';\r\nimport MuiCardContent from '@material-ui/core/CardContent';\r\nimport MuiCardActions from '@material-ui/core/CardActions';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n planCard: {\r\n position: 'relative',\r\n zIndex: 99,\r\n },\r\n heading: {\r\n margin: \"20px auto 5px auto\",\r\n fontSize: 18,\r\n fontWeight: 900,\r\n textAlign: \"center\",\r\n },\r\n description: {\r\n fontSize: 16,\r\n fontWeight: 700,\r\n color: '#7A340D',\r\n textAlign: \"center\",\r\n },\r\n price: {\r\n fontSize: 38,\r\n fontWeight: 900,\r\n color: '#C8602A',\r\n textAlign: \"center\",\r\n },\r\n per: {\r\n fontSize: 12,\r\n fontWeight: 600,\r\n color: '#7A340D',\r\n paddingTop: 14,\r\n },\r\n planButton: {\r\n margin: '0 auto',\r\n padding: \"0 2em\",\r\n },\r\n subButton: {\r\n margin: '0 auto',\r\n padding: \"0 2em\",\r\n '&:hover': {\r\n },\r\n '&:disabled': {\r\n backgroundColor: \"#e6e6e6\",\r\n },\r\n },\r\n numLicensesCollapse: {\r\n position: 'relative',\r\n top: -15,\r\n },\r\n numLicensesContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n\r\n numLicensesText: {\r\n fontSize: 16,\r\n fontWeight: 700,\r\n color: 'white',\r\n textAlign: \"center\",\r\n paddingTop: 15,\r\n },\r\n\r\n numLicensesInput: {\r\n height: \"2em\",\r\n padding: \"0 1em\",\r\n \"&::placeholder\": {\r\n fontStyle: \"italic\",\r\n }\r\n }\r\n }),\r\n);\r\n\r\n\r\nconst PlanTextField = withStyles({\r\n root: {\r\n background: 'white',\r\n border: \"2px solid \" + theme.palette.orange.main,\r\n borderRadius: \"1.3em\",\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n \"& .MuiInputLabel-root\": {\r\n position: \"relative\",\r\n padding: \"0 0 0.5em 0.5em\",\r\n color: theme.palette.orange.main,\r\n fontSize: 12,\r\n fontWeight: 700,\r\n transform: \"none\",\r\n },\r\n\r\n '& .MuiOutlinedInput-root': {\r\n '& fieldset': {\r\n border: \"0px\"\r\n },\r\n },\r\n },\r\n})(TextField);\r\n\r\nconst Card = withStyles({\r\n root: {\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n height: \"100%\",\r\n width: 210,\r\n margin: \"0 6px\",\r\n borderRadius: \"12px\",\r\n boxShadow: \"8px 10px 12px 0 rgba(0,0,0,0.25)\",\r\n overflow: \"hidden\",\r\n }\r\n})(MuiCard);\r\n\r\nconst CardHeader = withStyles({\r\n root: {\r\n padding: '24px 10px 12px 10px',\r\n color: \"#fff\",\r\n background: theme.palette.orange.main,\r\n boxShadow: \"0 4px 4px 0 rgba(0,0,0,0.25)\",\r\n },\r\n title: {\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"18px\",\r\n fontWeight: 900,\r\n textAlign: 'center',\r\n textTransform: 'uppercase',\r\n },\r\n})(MuiCardHeader);\r\n\r\nconst CardContent = withStyles({\r\n root: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n height: \"100%\",\r\n paddingTop: theme.spacing(3),\r\n }\r\n})(MuiCardContent);\r\n\r\nconst CardActions = withStyles({\r\n root: {\r\n flexDirection: 'column',\r\n padding: \"0 16px 36px 16px\",\r\n },\r\n})(MuiCardActions);\r\n\r\ninterface ICurrencySymbolProps {\r\n currency: \"USD\" | \"EUR\" | \"GBP\" | \"CAD\";\r\n}\r\nconst CurrencySymbol = ({ currency }: ICurrencySymbolProps) => {\r\n switch (currency) {\r\n case \"USD\":\r\n return $;\r\n case \"EUR\":\r\n return ;\r\n case \"GBP\":\r\n return £;\r\n case \"CAD\":\r\n return <>CA $;\r\n }\r\n}\r\n\r\ninterface IProps {\r\n title: string;\r\n description: string;\r\n price: number;\r\n currency: \"USD\" | \"EUR\" | \"GBP\" | \"CAD\";\r\n minNumLicenses: number;\r\n maxNumLicenses: number;\r\n onSelectPlan: (numLicenses: number) => void\r\n}\r\n\r\nconst PlanCard = ({ title, description, price, currency, minNumLicenses, maxNumLicenses, onSelectPlan }: IProps) => {\r\n const classes = useStyles();\r\n const [showNumLicenses, setShowNumLicenses] = useState(false);\r\n const [numLicenses, setNumLicenses] = useState(Number.NaN);\r\n const isNumLicensesValid = () => {\r\n return (numLicenses >= minNumLicenses) && (numLicenses <= maxNumLicenses)\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n {description}\r\n {\r\n price ?\r\n \r\n {price}\r\n /pers\r\n \r\n :\r\n Free\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n How many licenses do you need?\r\n setNumLicenses(parseInt(e.target.value))}\r\n InputProps={{\r\n inputProps: {\r\n min: minNumLicenses,\r\n max: maxNumLicenses,\r\n },\r\n classes: {\r\n input: classes.numLicensesInput,\r\n }\r\n }}\r\n fullWidth\r\n variant=\"outlined\"\r\n size=\"small\"\r\n />\r\n \r\n \r\n onSelectPlan(numLicenses)}\r\n disabled={!isNumLicensesValid()}\r\n type=\"button\" color=\"primary\" variant=\"contained\" size=\"medium\"\r\n className={classes.subButton}\r\n >\r\n Subscribe\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default PlanCard;","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RouteComponentProps } from '@reach/router';\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, Theme, Typography } from '@material-ui/core';\r\nimport MainLayout from 'layouts/MainLayout';\r\nimport { PlanCard } from 'domain/license';\r\nimport { checkoutAction, checkoutFreeTierAction, getAllPlansAction, planSelectionStarted } from 'store/ui/uiSlice';\r\nimport { getAllPlans } from 'store/ui/uiSelectors';\r\nimport { EcomPlanDTO } from \"external-api/license-api\";\r\nimport StyledModal from 'components/StyledModal';\r\nimport { getCountry } from 'store/user/userSelector';\r\nimport { Country, countries } from \"countries-list\"\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n\r\n },\r\n heading: {\r\n marginTop: theme.spacing(2),\r\n fontWeight: 500,\r\n textTransform: \"uppercase\",\r\n },\r\n msgHeading: {\r\n margin: 0,\r\n fontSize: 36,\r\n fontWeight: 700,\r\n },\r\n msgBody: {\r\n marginTop: theme.spacing(1),\r\n fontSize: 18,\r\n lineHeight: '20px',\r\n fontWeight: 900,\r\n textTransform: \"uppercase\",\r\n },\r\n plansContainer: {\r\n margin: 'auto',\r\n marginTop: theme.spacing(8),\r\n marginBottom: theme.spacing(2),\r\n maxWidth: 1200,\r\n },\r\n planContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n planImage: {\r\n width: 210,\r\n margin: '0px 6px',\r\n },\r\n planInfoContainer: {\r\n\r\n },\r\n planInfoRow: {\r\n display: \"flex\",\r\n },\r\n modalContentTitle: {\r\n display: 'block',\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"1.2em\",\r\n fontWeight: 900,\r\n marginBottom: \"10px\"\r\n },\r\n modalContentBody: {\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"12px\",\r\n fontWeight: 400,\r\n margin: \"10px 0px\",\r\n \"& a\": {\r\n color: \"#C8602A\",\r\n fontWeight: 400,\r\n textDecoration: \"underline\",\r\n \"&:hover, &:focus\": {\r\n textDecoration: \"underline\",\r\n }\r\n }\r\n },\r\n modalContentNumLicenses: {\r\n fontSize: \"16px\",\r\n fontWeight: 700,\r\n color: \"#C8602A\",\r\n },\r\n modalFieldLabel: {\r\n fontSize: \"12px\",\r\n fontWeight: 400,\r\n lineHeight: \"1.5em\",\r\n textAlign: \"right\",\r\n width: \"33%\",\r\n },\r\n modalFieldValue: {\r\n fontSize: \"12px\",\r\n lineHeight: \"1.5em\",\r\n fontWeight: 400,\r\n textAlign: \"left\",\r\n width: \"66%\",\r\n paddingLeft: 18,\r\n },\r\n modalActionButtonContainer: {\r\n textAlign: 'center',\r\n marginTop: \"20px\",\r\n },\r\n modalCancelButtonContainer: {\r\n textAlign: 'center',\r\n },\r\n modalActionButton: {\r\n\r\n },\r\n modalCancelButton: {\r\n borderWidth: \"0px\",\r\n textTransform: \"none\",\r\n backgroundColor: \"transparent\",\r\n fontWeight: \"bold\",\r\n \"&:hover, &:focus\": {\r\n backgroundColor: \"transparent\",\r\n borderWidth: \"0px\",\r\n },\r\n },\r\n modalDivider: {\r\n backgroundColor: \"#9E9E9E\",\r\n },\r\n }),\r\n);\r\n\r\nexport function getCurrencyForCountry(country: string) {\r\n const countryCodeData = Object.entries(countries).find(([countryCode, countryData]) => {\r\n return countryCode.toLowerCase() === country.toLowerCase()\r\n });\r\n\r\n if (countryCodeData) {\r\n const officialCurrency = countryCodeData[1].currency;\r\n switch (officialCurrency) {\r\n case \"USD\":\r\n return \"USD\";\r\n case \"EUR\":\r\n return \"EUR\";\r\n case \"GBP\":\r\n return \"GBP\";\r\n case \"CAD\":\r\n return \"CAD\";\r\n default:\r\n return \"USD\";\r\n }\r\n }\r\n else\r\n return \"USD\";\r\n}\r\n\r\ninterface IProps extends RouteComponentProps {\r\n\r\n}\r\n\r\nconst Plans = ({ }: IProps) => {\r\n const classes = useStyles();\r\n const plans = useSelector(getAllPlans);\r\n const country = useSelector(getCountry);\r\n const currency = getCurrencyForCountry(country);\r\n\r\n const [selectedPlan, setSelectedPlan] = useState(null);\r\n const [selectedNumLicenses, setSelectedNumLicenses] = useState(0);\r\n const [showConfirmSubscriptionModal, setShowConfirmSubscriptionModal] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n dispatch(getAllPlansAction());\r\n }, []);\r\n\r\n function getNumber(str: any, defaultValue: number) {\r\n const num = parseInt(str, 10);\r\n return isNaN(num) ? defaultValue : num;\r\n }\r\n\r\n function sortPlans(a: EcomPlanDTO, b: EcomPlanDTO) {\r\n const a_order = Number(a.product?.metadata?.Order) ?? 0;\r\n const b_order = Number(b.product?.metadata?.Order) ?? 0;\r\n return a_order > b_order ? 1 : -1\r\n }\r\n\r\n async function handleSelectPlan(plan: EcomPlanDTO, numLicenses: number) {\r\n\r\n setSelectedPlan(plan);\r\n setSelectedNumLicenses(numLicenses);\r\n\r\n const price = plan.recurringPrices?.find(price => price.currency?.toLowerCase() === currency.toLowerCase())?.unit_amount;\r\n\r\n if (price === 0) {\r\n if (plan.product?.id) {\r\n await dispatch(checkoutFreeTierAction(\r\n {\r\n priceId: plan.recurringPrices?.find(price => price.currency?.toLowerCase() === currency.toLowerCase())?.id ?? \"\",\r\n quantity: numLicenses\r\n }\r\n ));\r\n }\r\n } else {\r\n setShowConfirmSubscriptionModal(true);\r\n }\r\n }\r\n\r\n async function handleConfirmSubscription() {\r\n await dispatch(planSelectionStarted());\r\n await dispatch(checkoutAction(\r\n {\r\n priceId: selectedPlan?.recurringPrices?.find(price => price.currency?.toLowerCase() === currency.toLowerCase())?.id ?? \"\",\r\n quantity: selectedNumLicenses\r\n }\r\n ));\r\n }\r\n\r\n const ConfirmSubscriptionModal = () => {\r\n return (\r\n setShowConfirmSubscriptionModal(false)}>\r\n \r\n \r\n
\r\n \r\n Please confirm your BiasProof subscription.\r\n \r\n \r\n By clicking Checkout button, you agree to be charged for\r\n \r\n
\r\n {selectedNumLicenses} licenses\r\n
\r\n
\r\n {/* \r\n
\r\n
\r\n
Plan:
\r\n
Organization
\r\n
\r\n
\r\n
Per license:
\r\n
$20.00
\r\n
\r\n
\r\n
Cost:
\r\n
$500.00
\r\n
\r\n
\r\n
Tax:
\r\n
$65.00
\r\n
\r\n
\r\n
Total:
\r\n
$565.00
\r\n
\r\n
*/}\r\n \r\n \r\n Selecting checkout will redirect you to our payment processor. If you have any questions regarding your purchase, please contact our support staff.\r\n \r\n
\r\n
\r\n \r\n \r\n Checkout\r\n \r\n \r\n \r\n setShowConfirmSubscriptionModal(false)}\r\n className={classes.modalCancelButton}\r\n >\r\n Cancel\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n My Plan\r\n \r\n \r\n Choose the best plan that fits your company\r\n Plans for companies of all sizes.
Scale as you grow.
\r\n
\r\n \r\n \r\n {plans.slice().sort(sortPlans).map(plan => {\r\n return (\r\n \r\n
\r\n
\r\n handleSelectPlan(plan, numLicenses)}\r\n title={plan.product?.name ?? \"Untitled\"}\r\n description={plan.product?.description ?? \"\"}\r\n price={(plan.recurringPrices?.find(price => price.currency?.toLocaleLowerCase() === currency.toLowerCase())?.unit_amount ?? 0) / 100}\r\n currency={currency}\r\n minNumLicenses={getNumber(plan.product?.metadata?.MinQuantity, 1)}\r\n maxNumLicenses={getNumber(plan.product?.metadata?.MaxQuantity, Number.POSITIVE_INFINITY)}\r\n />\r\n
\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default Plans;","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Button, createStyles, Divider, Grid, makeStyles, Theme, Typography } from '@material-ui/core';\r\nimport { getPlan, hasPlan as hasPlanSelector, hasStripe as hasStripeSelector } from 'store/plan/planSelectors';\r\nimport { getGroupList } from 'store/group/groupSelectors';\r\nimport { createCustomerPortalAction } from 'store/user/userSlice';\r\nimport { Dispatch } from 'store';\r\nimport { navigate } from '@reach/router';\r\nimport { Paths } from 'utils/constants';\r\nimport StyledModal from 'components/StyledModal';\r\nimport ErrorButton from 'components/ErrorButton';\r\nimport DeleteAccountModalForm from './DeleteAccountModalForm';\r\nimport { getAllPlans } from 'store/ui/uiSelectors';\r\nimport { getCountry } from 'store/user/userSelector';\r\nimport { getCurrencyForCountry } from 'pages/Plans';\r\nimport { downgradePlanAction, getMyPlan } from 'store/plan/planSlice';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n subscriptionManagementRoot: {\r\n },\r\n title: {\r\n fontSize: 24,\r\n fontWeight: 800,\r\n textTransform: \"uppercase\",\r\n marginBottom: theme.spacing(1),\r\n },\r\n sectionTitle: {\r\n fontSize: 20,\r\n fontWeight: 700,\r\n textTransform: \"uppercase\",\r\n marginBottom: theme.spacing(1),\r\n },\r\n divider: {\r\n maxWidth: \"25rem\",\r\n backgroundColor: \"#9E9E9E\",\r\n },\r\n text: {\r\n fontSize: 16,\r\n fontWeight: 700,\r\n },\r\n fieldLabel: {\r\n fontSize: 14,\r\n fontWeight: 700,\r\n color: theme.palette.orange.main,\r\n paddingTop: theme.spacing(1)\r\n },\r\n fieldValue: {\r\n fontSize: 18,\r\n fontWeight: 700,\r\n },\r\n link: {\r\n fontSize: 16,\r\n fontWeight: 700,\r\n textTransform: \"uppercase\",\r\n padding: \"8px 0px\",\r\n \"& a\": {\r\n color: theme.palette.orange.main,\r\n fontWeight: 700,\r\n textDecoration: \"none\",\r\n \"&:hover, &:focus\": {\r\n textDecoration: \"underline\",\r\n }\r\n }\r\n },\r\n links: {\r\n margin: '22px 0px',\r\n },\r\n button: {\r\n margin: '30px 0px',\r\n padding: \"0 3em\",\r\n },\r\n redButton: {\r\n backgroundColor: theme.palette.red.error,\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.red.dark1,\r\n }\r\n },\r\n modalContentTitle: {\r\n display: 'block',\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"1.2em\",\r\n fontWeight: 900,\r\n marginBottom: \"10px\"\r\n },\r\n modalContentBody: {\r\n color: \"inherit\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"12px\",\r\n fontWeight: 400,\r\n \"& a\": {\r\n color: \"#29ABE2\",\r\n fontWeight: 700,\r\n textDecoration: \"none\",\r\n\r\n \"&:hover, &:focus\": {\r\n textDecoration: \"underline\",\r\n }\r\n }\r\n },\r\n modalActionButton: {\r\n textAlign: 'center',\r\n marginTop: \"20px\"\r\n },\r\n modalCancelButton: {\r\n textAlign: 'center',\r\n },\r\n })\r\n);\r\n\r\nfunction getNumber(str: any, defaultValue: number) {\r\n const num = parseInt(str, 10);\r\n return isNaN(num) ? defaultValue : num;\r\n}\r\n\r\nfunction useFreePlanDetails() {\r\n const plans = useSelector(getAllPlans);\r\n const country = useSelector(getCountry);\r\n const currency = getCurrencyForCountry(country);\r\n const freePlan = plans.find(\r\n planInfo => planInfo.recurringPrices?.find(\r\n price => price.currency?.toLowerCase() === currency.toLowerCase()\r\n )?.unit_amount === 0\r\n )\r\n\r\n const freePlanPriceId = freePlan?.recurringPrices?.find(x => x.currency?.toLowerCase() === currency.toLowerCase())?.id\r\n const freePlanMaxQuantity = getNumber(\r\n freePlan?.product?.metadata?.MaxQuantity\r\n , Number.POSITIVE_INFINITY\r\n );\r\n\r\n return { freePlanPriceId, freePlanMaxQuantity }\r\n}\r\n\r\nfunction useIsFreePlan() {\r\n const plan = useSelector(getPlan);\r\n const plans = useSelector(getAllPlans);\r\n\r\n const allRecurringPrices = plans.map(\r\n planInfo => planInfo.recurringPrices\r\n ).flat();\r\n\r\n const isCurrentPlanFree = allRecurringPrices.find(\r\n price => price?.id === plan.currentSubscription?.priceID\r\n )?.unit_amount === 0;\r\n\r\n const isNextPlanFree = allRecurringPrices.find(\r\n price => price?.id === plan.nextSubscription?.priceID\r\n )?.unit_amount === 0;\r\n\r\n return { isCurrentPlanFree, isNextPlanFree }\r\n}\r\n\r\ninterface IProps {\r\n}\r\n\r\nconst SubscriptionManagement = ({ }: IProps) => {\r\n\r\n const classes = useStyles();\r\n const dispatch: Dispatch = useDispatch();\r\n const [portalLink, setPortalLink] = useState('');\r\n\r\n const [showCancelPlanModal, setShowCancelPlanModal] = useState(false);\r\n const [showDeleteAccountModal, setShowDeleteAccountModal] = useState(false);\r\n\r\n const hasPlan = useSelector(hasPlanSelector);\r\n const plan = useSelector(getPlan);\r\n const groups = useSelector(getGroupList);\r\n const hasStripe = useSelector(hasStripeSelector);\r\n\r\n const { freePlanPriceId, freePlanMaxQuantity } = useFreePlanDetails();\r\n const { isCurrentPlanFree, isNextPlanFree } = useIsFreePlan();\r\n const totalNumberOfSlotsUsed = groups.map(group => group.numberOfSlotsUsed).reduce((a, b) => a + b, 0);\r\n\r\n function handleSelectPlan() {\r\n navigate(Paths.PLANS);\r\n }\r\n\r\n function handleEditPlan() {\r\n navigate(Paths.EDIT_PLAN);\r\n }\r\n\r\n function handleCancelPlan() {\r\n setShowCancelPlanModal(true);\r\n }\r\n\r\n function handleDeleteAccount() {\r\n setShowDeleteAccountModal(true);\r\n }\r\n\r\n async function onCancelPlan() {\r\n\r\n if (freePlanPriceId) {\r\n await dispatch(downgradePlanAction(\r\n {\r\n subscriptionID: plan.stripeSubscriptionID,\r\n priceId: freePlanPriceId,\r\n quantity: freePlanMaxQuantity,\r\n quantityRemoved: (plan.nextSubscription?.quantity ?? (plan.currentSubscription?.quantity ?? 0)) - freePlanMaxQuantity,\r\n }\r\n ));\r\n await dispatch(getMyPlan());\r\n setShowCancelPlanModal(false);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n async function createCustomerPortalLink() {\r\n if (hasStripe) {\r\n const resp = await dispatch(createCustomerPortalAction());\r\n if (createCustomerPortalAction.fulfilled.match(resp)) {\r\n setPortalLink(resp.payload);\r\n }\r\n }\r\n }\r\n createCustomerPortalLink();\r\n }, [])\r\n\r\n function SubscriptionDetails() {\r\n return (\r\n <>\r\n Subscription Details\r\n \r\n
Current Plan:
\r\n
{plan.name} Plan
\r\n
Number of Licenses Purchased:
\r\n
{plan.price === 0 ? \"Free (5 licenses)\" : (plan.currentSubscription?.quantity ?? plan.features?.maxNumEmailUsers)}
\r\n
Number of Licenses Used:
\r\n
{totalNumberOfSlotsUsed}
\r\n
Number of Licenses Available:
\r\n
{(plan.currentSubscription?.quantity ?? plan.features?.maxNumEmailUsers) ? ((plan.currentSubscription?.quantity ?? plan.features?.maxNumEmailUsers ?? 0) - totalNumberOfSlotsUsed) : 0}
\r\n \r\n \r\n )\r\n }\r\n\r\n function SubscriptionSettings() {\r\n return (\r\n <>\r\n Subscription Settings\r\n \r\n {\r\n plan.nextSubscription?.startDate &&\r\n <>\r\n
Subscription Renewal Date:
\r\n
{new Date(plan.nextSubscription?.startDate).toLocaleDateString(undefined, { year: 'numeric', month: 'long', day: 'numeric' })}
\r\n \r\n }\r\n {/*
Number of Licenses to Renew:
\r\n
{isNextPlanFree ? \"Free (5 licenses)\" : plan.nextSubscription?.quantity}
*/}\r\n \r\n \r\n )\r\n }\r\n\r\n function CancelSubscription() {\r\n return (\r\n <>\r\n Cancel Subscription\r\n \r\n By clicking “Cancel Subscription” below, your subscription renewal payment will be cancelled and your account will be downgraded to the FREE tier at the end of your billing cycle.\r\n
\r\n Your account will remain operational, and you will still be able to access your account, if at a later date you decide to renew your subscription.\r\n \r\n setShowCancelPlanModal(false)}>\r\n \r\n \r\n
\r\n \r\n Are you sure you want to cancel your subscription?\r\n \r\n \r\n By clicking “Cancel Subscription” below, your subscription renewal payment will be cancelled and your account will be downgraded to the FREE tier at the end of your billing cycle.\r\n \r\n
\r\n \r\n Your account will remain operational, and you will still be able to access your account, if at a later date you decide to renew your subscription.\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n setShowCancelPlanModal(false)}\r\n />\r\n \r\n
\r\n
\r\n \r\n )\r\n }\r\n\r\n function DeleteAccount() {\r\n return (\r\n <>\r\n Delete Account\r\n \r\n By clicking “Delete Account” below, your payment subscription will be cancelled and will cease to have access to your BiasProof account at the end of your next billing cycle.\r\n \r\n setShowDeleteAccountModal(false)}>\r\n \r\n \r\n
\r\n \r\n By deleting your account all associated data will be permanently deleted. This cannot be undone.\r\n \r\n \r\n We’re sorry to see you go, but we understand that things change and that our services may not be required anymore.\r\n \r\n
\r\n \r\n If you change your mind between now and the end of this billing cycle, you can reactivate your account by contacting us at:\r\n \r\n
\r\n \r\n support@biasproof.com\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n setShowDeleteAccountModal(false)}\r\n />\r\n \r\n
\r\n
\r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n Subscription Management\r\n {/* Select View Billing History below to access your past invoices. Select Update Billing Information below to change your billing information. */}\r\n \r\n\r\n \r\n {hasPlan ?\r\n <>\r\n \r\n {hasStripe &&\r\n <>\r\n \r\n \r\n \r\n }\r\n {/* */}\r\n \r\n :\r\n <>\r\n
No plan selected. Please select a plan.
\r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SubscriptionManagement;","import React, { useEffect } from 'react';\r\nimport { createStyles, Grid, makeStyles, Theme, Typography, Box, Divider } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport MainLayout from 'layouts/MainLayout';\r\nimport AccountTabs from 'domain/account/AccountTabs';\r\nimport AccountInfo from 'domain/account/AccountInfo';\r\nimport SubscriptionInfo from 'domain/account/SubscriptionInfo';\r\nimport SubscriptionManagement from 'domain/account/SubscriptionManagement';\r\nimport { useDispatch } from 'react-redux';\r\nimport { getMyPlan } from 'store/plan/planSlice';\r\nimport { getAllPlansAction } from 'store/ui/uiSlice';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n myAccountRoot: {\r\n width: \"auto\",\r\n margin: `${theme.spacing(2)}px 64px ${theme.spacing(12)}px 64px`,\r\n\r\n \"&::before\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n top: 0,\r\n bottom: 0,\r\n right: 0,\r\n width: \"100vw\",\r\n background: \"linear-gradient(to bottom, #e6e6e6, #fff 520px)\",\r\n borderTop: \"1px solid\" + theme.palette.shades.grey,\r\n zIndex: -1,\r\n },\r\n },\r\n header: {\r\n fontWeight: 500,\r\n textTransform: \"uppercase\",\r\n },\r\n content: {\r\n borderRadius: 0,\r\n transition: \"0.3s\",\r\n boxShadow: \"0 8px 40px -12px rgba(0,0,0,0.5)\",\r\n \"&:hover\": {\r\n boxShadow: \"0 16px 70px -12.125px rgba(0,0,0,0.3)\"\r\n },\r\n height: \"100%\",\r\n minHeight: \"300px\",\r\n width: '100%',\r\n padding: theme.spacing(3)\r\n },\r\n subInfo: {\r\n padding: \"12px 18px\",\r\n },\r\n divider: {\r\n maxWidth: \"25rem\",\r\n backgroundColor: \"#9E9E9E\",\r\n margin: \"0 2em 1em 0\",\r\n },\r\n }),\r\n);\r\n\r\nTabPanel.propTypes = {\r\n children: PropTypes.node,\r\n index: PropTypes.any.isRequired,\r\n value: PropTypes.any.isRequired,\r\n};\r\n\r\nfunction TabPanel(props: { [x: string]: any; children: any; value: any; index: any; }) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n